[英]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.