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