动态约束更新

moz*_*sky 2 ios swift xcode6

在我的项目中有一些我想要实现的特定内容但是为了做到这一点,我可能会动态地更改视图的约束.假设我有一个UIView实例和一个UILabel实例.下图显示了它的外观.(图片有点大,你知道所有iPhone 6; P)

在此输入图像描述

它最初是这样的.但是当出现一个视图时,我会进行计算(以确定是否更改容器的高度)并应用它们.如果需要减少容器(灰色视图)应用程序,最后我们可能会得到像...

在此输入图像描述

我希望它可以完全像我刚才描述的那样工作,但是......它没有.相反,它就像......

在此输入图像描述

因此,容器的高度会发生变化,但即使存在限制条件,下面的标签也位于同一位置.所以我想知道如何根据更新的大小动态更新视图位置.

先感谢您!

val*_*fer 7

您应该明确使用约束.特别是标签必须具有设置为N个点的约束"要查看的顶部空间".然后从约束"视图高度"在视图控制器中设置一个插座,并更改该约束以调整视图高度.

@IBOutlet weak var viewHeightConstraint: NSLayoutConstraint!

func changeViewHeight(sender: AnyObject) {

    viewHeightConstraint.constant = newHeight
}
Run Code Online (Sandbox Code Playgroud)

如果您需要更多详细信息,请告诉我们

  • 如果您正在使用约束,则无法直接修改视图的大小属性; 只能通过约束.我建议观看WWDC会谈,介绍自动布局和'先进自动布局".2012年,我想? (2认同)