如何在启用自动布局的情况下更改 iOS6 中的 UIView 大小?
Posted
技术标签:
【中文标题】如何在启用自动布局的情况下更改 iOS6 中的 UIView 大小?【英文标题】:How to change a UIView size in iOS6 with autolayout on? 【发布时间】:2012-12-30 12:15:49 【问题描述】:我理解 ios6 中新的自动布局技术的想法是您不再需要设置框架,而是按意图编写代码?
如果我通过其框架更改 UIView 大小,则在运行时从这一点开始,它的任何子视图当前都没有移动并随着视图而变化。
因此,我为 UIView 上的约束创建了一个出口,并更改了该约束的常量。这会改变 UIView 的大小,并且所有子视图也会相应地移动。
那么我在正确的轨道上吗? 这是我想在自动布局下更改 UIView 大小的方式吗?
【问题讨论】:
【参考方案1】:您不设置框架。您改为更新相关约束(您将需要对这些约束的引用,无论是作为出口还是作为您在代码中创建约束后保留的属性)。
举个简单的例子,如果您固定了视图的宽度,只需更改宽度约束的.constant
属性即可在视图上设置新宽度。
这是一个包含子视图的示例视图控制器:
创建宽度和高度约束的出口,并在您想要调整视图大小时更改它们。
【讨论】:
这就是我的意思。我也在想这个,这也是我提出问题的原因。谢谢。 添加了一个示例,以便您可以看到它在故事板中的布局方式。 我刚刚重新阅读了您的问题并意识到您已经知道这一点。那么,一个简短的答案是肯定的。你在正确的轨道上!以上是关于如何在启用自动布局的情况下更改 iOS6 中的 UIView 大小?的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 6 中启用自动布局,在 < iOS6 中禁用自动布局
在启用自动布局的情况下调整 swift/xcode 中的按钮大小