【问题标题】:How do I change the direction in which the width constraint changes for UIButton?如何更改 UIButton 的宽度约束更改的方向?
【发布时间】:2015-07-06 14:57:40
【问题描述】:

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

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

我在 IB 中设置了带有约束的按钮,所以我正在更改动画块中的约束:

UIView.animateWithDuration(1.0, animations: {

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

           self.view.layoutIfNeeded()

        })

但是,这会导致红色按钮向右侧拉长并离开屏幕:

我想向左拉长。

PS:我知道按钮和它们的布局看起来并不漂亮,我还在尝试在设计之前弄清楚功能

【问题讨论】:

  • 意味着当您点击它时,您需要将红色按钮重叠在蓝色按钮上。我是对的?

标签: ios objective-c swift uibutton


【解决方案1】:

将开始按钮固定在右侧(容器的尾随空间)。固定右边缘后,按钮可以“增长”的唯一位置是左侧。

您可以尝试的另一件事是摆脱宽度限制,将开始按钮的左侧(前导空格)固定到 容器(即不固定到保存按钮),然后缩小动画闭包中该约束的常数。像

leadingConstraint.constant = leadingConstraint.constant - saveButton.bounds.size.width

在不知道如何布置自动布局约束的情况下决定最佳路线有点困难。

无论您做什么,您都可能需要降低保存按钮的 alpha。否则,当开始按钮“覆盖”它时,保存按钮可能仍然可见。您也可以在动画闭包中添加类似saveButton.alpha = 0 的语句来执行此操作它。

【讨论】:

  • 您的第一个建议奏效了。谢谢!另外,我应该显示我所有的限制,对此感到抱歉。
猜你喜欢
  • 2021-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-26
  • 2014-10-01
  • 1970-01-01
相关资源
最近更新 更多