如何在xib中添加programmaticaly约束

时间:2017-09-21 10:42:49

标签: ios objective-c xib

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

2 个答案:

答案 0 :(得分:1)

这里有两个选项

1)使用UIStackView必须是IOS9 +

2)约束

因为UIStackView答案已经给出,所以我建议你采取第二种方式

类似我已经实现了水平对齐标签

按照步骤

1)让我们说你的标签是L1,L2,L3,给每个标签赋予相等的高度(请将L2和L3拖到L1并给出相等的高度)

2)将Equal Height约束优先级设置为 999

3)在您的情况下,L2是可选的(可根据您的情况隐藏或删除),因此将 HEIGHT 约束条件赋予 L2 ,并且常量 0 < / strong>优先级 750 您的约束条件永远无法突破

4)采取该约束的 IBOutlet

5)在我的情况下,无论你需要什么,都给予领先的尾随顶部,它是0

6)现在您只需要在需要显示隐藏标签

时更改优先级
 func setupViewForMyMemoriams (){
        self.priority_Width_L2.priority = UILayoutPriorityDefaultLow
       // OR
       self.priority_Width_L2.priority  = UILayoutPriorityRequired
 }

希望它对你有所帮助

答案 1 :(得分:0)

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

另一种方法是不删除Label2,但是使高度变为0,将Label2包装在从顶部Label2到Label3的高度的UIView中,然后将该UIView的高度更改为0,在视觉上它将被Label2删除< / p>