2017-09-21 49 views
0

我有3个标签的单元格。标签对单元格和其他标签有约束。如果我从超级视图中删除Label2,那么我将失去约束,我的单元格将被更改。当我删除Label2时,如何以编程方式在Label1和Label3之间添加约束。 Cell如何将限制programmaticaly添加到xib

+0

IO9 +摇滚与UIStackView –

回答

1

在这里,你有两个选择

1)使用UIStackView必须是IOS9 +

2)约束

UIStackView答案已经给出,所以我建议你第2个办法做到这一点

类似我已经实现了水平排列的标签

按照以下步骤

1)假设你的标签是L1,L2, L3,给相同的高度到每个标签(请拖动L2,和L3至L1和给予同等高度)

2)设置相等的高度约束优先

3)如在你的情况L2是可选的(可以被隐藏或按您的场景删除),从而得到HEIGHT约束到L2具有恒定优先(YOUR CONSTRAINTS NEVER BREAK

4)就拿IBOutlet中该约束

5),并给予领导尾随顶部底部无论你在我的情况下,需要的是0

6)现在你只需要改变优先级时,你需要显示隐藏标签

func setupViewForMyMemoriams(){ 
     self.priority_Width_L2.priority = UILayoutPriorityDefaultLow 
     // OR 
     self.priority_Width_L2.priority = UILayoutPriorityRequired 
} 

希望这对您有所帮助

0

使用UIStackView,它会自动调整高度。

另一种方法是不去除Label2,但使高度变为0,将Label2放在一个UIView中,该UIView从顶部Label2到Label3具有高度,然后将该UIView的高度更改为0,可见它将被Label2移除

相关问题