【问题标题】:swift update constraints programmatically以编程方式快速更新约束
【发布时间】:2017-01-23 01:57:54
【问题描述】:

我有一个 UIView,其中有 4 个组件,UITextField、一个 UIActivityIndi​​cator 和 2 个 UIButtons。所有组件都使用使用情节提要设置的约束。

Button1 UITextField UIActivityIndi​​cator Button2

UITextField显示一个UIWebView的url,UIActivityIndi​​cator对应页面加载。

页面加载完毕后,UIActivityIndi​​cator 被隐藏。

我想要的是,当加载完成并隐藏 UIActivityIndi​​cator 时,UITextField 的大小会增加并用完 UIActivityIndi​​cator。

Button1 UITextField Button2

【问题讨论】:

    标签: ios iphone swift3 uitextfield constraints


    【解决方案1】:

    我会这样做:

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

    从约束中按住 Control 并拖动到您的视图控制器中,为它创建一个出口。

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

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

    【讨论】:

    • 工作就像一个魅力!!
    • 考虑通过将插座连接到约束来更改布局需要一点时间,但这是在 Auto-Layout 中工作的常见方式。
    猜你喜欢
    • 2015-09-24
    • 1970-01-01
    • 2019-05-09
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-15
    相关资源
    最近更新 更多