gpt4 book ai didi

ios - 如何让自动布局在 Xcode 中工作

转载 作者:行者123 更新时间:2023-12-01 18:20:05 25 4
gpt4 key购买 nike

我查看了http://developer.apple.com/library/ios/#recipes/xcode_help-interface_builder/articles/UnderstandingAutolayout.html但解释很模糊。

我在 iOS 6 上。我有一个带有两个 subview 的 View Controller ,一个在另一个之上:

viewcontroller layout

我想使用自动布局来设置 View ,如果我以编程方式更改顶 View 的框架,底 View 将调整大小以适应顶 View 的新框架。也就是说,如果我增加顶 View 的高度,底 View 的高度应该降低以保持两个 View 之间的相同间隔;如果我降低顶 View 的高度,则会发生相反的情况。

我在 Xcode 中为这两个 View 获得的默认约束是:

tableview constraints

mapview constraints

如果我按住 Command 并调整顶部( map ) View 的大小,底部(表格 View )似乎会正确地垂直收缩或扩展以遵守它们之间的空间限制。

但是,当我尝试通过代码修改顶 View 的框架或边界时,例如:

self.topView.frame = CGRectMake(0, 0, 320, 514);

底 View 不缩小。
那么我错过了什么?

最佳答案

不能修改self.topView.frame像那样。设置框架是自动布局的工作。您需要修改约束,然后让自动布局更新框架。

创建类型为 NSLayoutConstraint 的 socket 在您的 View Controller 中:

@property (nonatomic, strong) IBOutlet NSLayoutConstraint *topViewHeightConstraint;

将 socket 连接到 Storyboard顶 View 上的 height=127 约束。 See this answer如果您需要更多帮助将 socket 连接到约束。

然后,要更改顶 View 的高度,并让自动布局也更新底 View 的框架,请设置约束的常量:
self.topViewHeightConstraint.constant = 514;

在运行循环结束时(不是马上,而是在屏幕更新之前),自动布局将修改两个 View 的框架以满足更改后的约束。

关于ios - 如何让自动布局在 Xcode 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17980489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com