以编程方式快速更新约束

时间:2017-01-23 01:57:55

标签: ios iphone swift3 uitextfield constraints

我有一个UIView,其中有4个组件, UITextField UIActivityIndi​​cator 和2个 UIButtons 。所有组件都使用故事板设置约束。

Button1 UITextField UIActivityIndi​​cator Button2

UITextField 显示 UIWebView 的网址, UIActivityIndi​​cator 对应于网页加载。

页面加载后,隐藏 UIActivityIndi​​cator

我想要的是当加载完成并隐藏 UIActivityIndi​​cator 时, UITextField 的大小会增加并占用 UIActivityIndi​​cator <使用的空间< /强>

Button1 UITextField Button2

1 个答案:

答案 0 :(得分:1)

这就是我要做的事情:

不是在文本字段和活动指示符之间设置约束,而是在文本字段和它的超级视图之间使用约束,添加额外的填充以为活动指示符腾出空间。

控制 - 从约束拖动到视图控制器中以创建它的出口。

在您的代码中,当您隐藏活动指示符时,通过活动指示符的宽度加上活动指示符和文本字段之间的空间来减少约束的常量设置,以便文本字段变宽以填充空间被隐藏的活动指标释放了。

如果您希望文本字段为其增长设置动画,请在更改约束设置的代码后立即调用layoutIfNeeded()来调用UIView.animate(duration:animations:)。这将导致布局更改动画。