以编程方式拉伸UIButton宽度

时间:2015-08-31 17:02:30

标签: ios objective-c uibutton autolayout nslayoutconstraint

我在视图中有两个UIButton,宽度为232px。

按钮对齐,例如

|[BUTTON1][BUTTON1]|
|-------232px------|

我对此对齐有一组约束,但现在我希望能够将BUTTON1的帧更改为全宽,具体取决于条件,因此它“d”必须以编程方式。我尝试更改框架,但由于它会自动更新,因此无法正常工作。基本上,我想要实现的是BUTTON1覆盖BUTTON2,是否有一种简单的方法可以做到这一点?

谢谢!

3 个答案:

答案 0 :(得分:1)

当您在项目中使用autoLayout时,要更改按钮的框架,您必须更改UIButton的约束。

首先制作按钮宽度约束的IBOutlet,然后当你想改变按钮的框架时更新那个约束

button.widthConstraint.constant = //set the constraint;
[UIView animateWithDuration:0.25f
             animations:^{
                 [self.view setNeedsLayout];
             }
             completion:^(BOOL finished) {
             }];

答案 1 :(得分:1)

按钮和宽度约束的出口然后

self.buttonWidthConstraint += 20 // adjust as per requirements
[self.myButton updateConstraints]

答案 2 :(得分:0)

您可以将覆盖按钮的常量设置为0,并为更改设置动画。然后覆盖按钮将填充整个空间。