我有以下 UIButtons,我试图让红色的“开始”按钮在点击时伸长并覆盖蓝色按钮:
我打算拉长“开始”按钮,然后隐藏“保存”按钮。但是,当我尝试这样做时,开始按钮向右拉长。
我在 IB 中设置了带有约束的按钮,因此我正在更改动画 block 中的约束:
UIView.animateWithDuration(1.0, animations: {
self.toggleButtonWidth.constant *= 2 //toggleButtonWidth is the width constraint of the red button
self.view.layoutIfNeeded()
})
但是,这会导致红色按钮向右拉长并超出屏幕范围:
我想向左拉长。
PS:我知道按钮和它们的布局看起来不漂亮,我仍在尝试在进行设计之前找出功能
最佳答案
将开始按钮固定在右侧(容器尾随空格)。固定右边缘后,按钮唯一可以“增长”的地方就是左边。
您可以尝试的另一件事是摆脱宽度限制,将开始按钮的左侧(前导空格)固定到容器(即不固定到保存按钮),然后减少动画闭包中该约束的常量。有点像
leadingConstraint.constant = leadingConstraint.constant - saveButton.bounds.size.width
在不知道如何布置自动布局约束的情况下,很难确定最佳路线。
无论您做什么,您都可能需要减少保存按钮的 alpha。否则,当开始按钮“覆盖”它时,保存按钮可能仍然可见。您也可以在动画闭包中通过添加类似 saveButton.alpha = 0
的语句来执行此操作,但是降低它的 alpha 只会使其不可见,因此您可能需要完全隐藏它(button. hidden = true
) 这样用户就不会意外地点击它。
关于ios - 如何更改 UIButton 的宽度约束变化方向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31249111/