ios - 如何更改 UIButton 的宽度约束变化方向?

标签 ios objective-c swift uibutton

我有以下 UIButtons,我试图让红色的“开始”按钮在点击时伸长并覆盖蓝色按钮:

Buttons

我打算拉长“开始”按钮,然后隐藏“保存”按钮。但是,当我尝试这样做时,开始按钮向右拉长。

我在 IB 中设置了带有约束的按钮,因此我正在更改动画 block 中的约束:

UIView.animateWithDuration(1.0, animations: {

           self.toggleButtonWidth.constant *= 2 //toggleButtonWidth is the width constraint of the red button

           self.view.layoutIfNeeded()

        })

但是,这会导致红色按钮向右拉长并超出屏幕范围:

problem

我想向左拉长。

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/

相关文章:

objective-c - UIImageView.image 大于 UIImageView

c# - 如何计算多边形的圆角?

swift - 是否可以将 MacOS 应用程序从 Xcode 项目添加到 Launchpad?

ios - 实现不同的行为以在点击取消事件 View 时关闭 UIAlertController 操作表

iOS 支持的 InterfaceOrientations 循环崩溃

objective-c - 安装后 Xcode 4.0.2 未启动

ios - 分发配置文件不包括 get-task-allow 权利

c++ - 如何防止 Box2D 中传感器对象上的隧道效应

ios - cloudkit saverecord 方法使应用程序崩溃

ios - 使用 OAuth 1 的 Swift (Xcode) REST API 连接