我在xib中有一个父视图,并且有3个按钮作为其子视图,它们的宽度相等,因此为所有3分配了相等的宽度约束(优先级为1000),现在所有3个按钮的宽度相等。这工作正常。现在有些情况下只需要2个按钮,所以我想只有2个按钮占用整个空间而没有第三个按钮。
为了实现这一点,我为所有3个按钮添加了一个宽度约束,并将其优先级设置为999.然后创建了一个IBoutlet并尝试将约束置于零。但它似乎不起作用。
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *fConstraint;
然后检查条件
if(item.isShareable == NO){
self.fConstraint.constant = 0;
}
约束不会变为零。
我错过了什么?我怎样才能实现它?
希望你能理解这个问题。
提前致谢。
答案 0 :(得分:0)
按照以下步骤实现您的要求,
答案 1 :(得分:0)
您可以尝试采用相等宽度约束的出口,
你的情景应该是,
将leading,trailing,top,fixed height and equal width
设置为视图中的每个按钮。
所以,你的第一个按钮应该有两个相等的宽度约束一个相对于第二个,一个相对于第三个。
所以请考虑任何相等的宽度约束,并在需要时更改它的常量。
我认为你需要管理前导和尾随约束的常量,以便在隐藏一个按钮时改变位置。
答案 2 :(得分:0)
如果按钮的设计会不断变化,那么更好的想法是使用percentage
逻辑构建代码。
功能:
- (float)percentage:(float)value withFatherView:(UIView *)fatherView isHeightPercentage:(BOOL)isHeightPercentage
{
float viewValue = fatherView.frame.size.width;
if (isHeightPercentage)
viewValue = fatherView.frame.size.height;
return (viewValue * value) / 100;
}