根据条件以编程方式拉伸UIButton宽度

问题描述 投票:1回答:3

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

按钮对齐,例如

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

我对此对齐有一组约束,但是现在我希望能够根据条件将BUTTON1的帧更改为全宽,因此必须以编程方式进行。我尝试更改框架,但是由于它是自动更新的,因此无法使用。基本上,我要实现的是BUTTON1覆盖BUTTON2,是否有一种简单的方法?

ios objective-c uibutton autolayout nslayoutconstraint
3个回答
1
投票

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

首先使IBOutlet成为按钮的宽度约束,然后当您想更改按钮的框架时像这样更新该约束

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

1
投票

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

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

0
投票

您可以将要covered的按钮的常数设置为0,并为更改设置动画。然后covering按钮将填充整个空间。

© www.soinside.com 2019 - 2024. All rights reserved.