根据条件以编程方式拉伸 UIButton 宽度
Posted
技术标签:
【中文标题】根据条件以编程方式拉伸 UIButton 宽度【英文标题】:Programmatically stretch UIButton width depending on condition 【发布时间】:2015-08-31 17:02:29 【问题描述】:我有两个 UIButtons 到一个 232px 宽的视图中。
按钮对齐如
|[BUTTON1][BUTTON1]|
|-------232px------|
我对此对齐有一组约束,但现在我希望能够根据条件将BUTTON1
的框架更改为全宽,因此必须以编程方式进行。我尝试更改框架,但由于它是自动更新的,所以它不起作用。基本上,我想要实现的是BUTTON1
覆盖BUTTON2
,有没有简单的方法可以做到这一点?
【问题讨论】:
【参考方案1】:由于您在项目中使用 autoLayout,因此要更改按钮的框架,您必须更改 UIButton 的约束。
首先制作按钮宽度约束的 IBOutlet,然后当您想要更改按钮的框架时,像这样更新该约束
button.widthConstraint.constant = //set the constraint;
[UIView animateWithDuration:0.25f
animations:^
[self.view setNeedsLayout];
completion:^(BOOL finished)
];
【讨论】:
在更新的问题中,我更清楚地说明了我的最终目的。我希望 BUTTON1 覆盖 BUTTON2 (有效地使其全宽)。这段代码给了我一个无法满足约束的错误。【参考方案2】:制作按钮的出口和宽度约束,然后
self.buttonWidthConstraint += 20 // adjust as per requirements
[self.myButton updateConstraints]
【讨论】:
在更新的问题中,我更清楚地说明了我的最终目的。我希望 BUTTON1 覆盖 BUTTON2(有效地使其全宽)。这段代码给了我一个无法满足约束的错误。【参考方案3】:您可以将想要覆盖的按钮的常量设置为 0 并为更改设置动画。然后覆盖按钮将填满整个空间。
【讨论】:
以上是关于根据条件以编程方式拉伸 UIButton 宽度的主要内容,如果未能解决你的问题,请参考以下文章