[英]removeFromSuperview function doesn't work fine
我有六個圖像視圖,我將它們設置如下:
img1 img2 img3 img4 img5 img6
但是當我通過使用removeFromSuperview
函數刪除img1
,找不到其他圖像removeFromSuperview
。 例如,如果我刪除了img1
,則其他圖像視圖彼此出現:
img23456
我不想使用hide
函數,因為它們之間會出現一個空格。 例如,如果我刪除img1
:
' ' img2 img3 img3 img4 img5 img6
另一方面,我想要的是如果img1
被刪除(沒有第一個空格):
img2 img3 img3 img4 img5 img6
我的布局:
更新
我的代碼:
if(self.job.wifi == "1")
{
self.img_option_1.isHidden = false
self.img_option_1.image = UIImage(named: "wififree")
}else{
self.img_option_1.removeFromSuperview()
}
if(self.job.apple_health == "1")
{
self.img_option_2.isHidden = false
self.img_option_2.image = UIImage(named: "sib_noghrei")
}else{
// self.img_option_2.removeFromSuperview()
self.img_option_2.removeFromSuperview()
}
if(self.job.wc == "1")
{
self.img_option_3.isHidden = false
self.img_option_3.image = UIImage(named: "wc")
}else{
self.img_option_3.removeFromSuperview()
}
if(self.job.full_time == "1")
{
self.img_option_4.isHidden = false
self.img_option_4.image = UIImage(named: "fulltime")
}else{
self.img_option_4.removeFromSuperview()
}
if(self.job.pos == "1")
{
self.img_option_5.isHidden = false
self.img_option_5.image = UIImage(named: "pos")
}else{
self.img_option_5.removeFromSuperview()
}
if(self.job.parking == "1")
{
self.img_option_6.isHidden = false
self.img_option_6.image = UIImage(named: "parking")
}else{
self.img_option_6.removeFromSuperview()
}
所以問題是,如果從superView中刪除img1 UIImageView
。 您對與已刪除的UIImageViews
關聯的其余UIImageViews
約束將失敗,因為它們已與img1 UIImageView
連接。
硬解決方案:當您通過代碼從superView中刪除“鏈”中的某些內容時,需要為每個UIImageView
更新/連接/添加約束。
刪除所有UIImageViews
並添加一個UICollectionView
。
將一個UIImageView
添加到該單元格,然后根據需要簡單地delete
或add
單元格, UICollectionView
將為您處理所有布局 。
@sneak的答案是解決此問題的標准方法。
我還有一個要分享的想法,我在應用程序中使用過。
將spacing
constraints
設為緊鄰的左UIImageView
的multiplied
constant
。
然后采用img's的width
constraint
的IBOutlet
。 然后像這樣更改您的其他部分->
else{
widthImg1.constant = 0
}
現在,間距也將變為零,因為它是一個乘常數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.