ios - 使用Autolayout时应该在哪里手动添加 subview

标签 ios objective-c autolayout visual-format-language

我试图强制自己开始在任何地方使用 AutoLayout。我有一个使用框架非常简单的场景,但我无法使用 Autolayout 使其工作。

我有一个 StoryBoard,我不能碰它,因为它属于图书馆。当加载与 Storyboard相关的 ViewController 时,我想以编程方式添加一个 View 。所以我在 viewDidLoad 中创建了一个 UIView,添加了高度和宽度的约束以及另外两个用于定位它们的约束。一切都很好,但宽度,我想要与其他 View 具有相同的宽度。我应该怎么做?

我在 viewDidLoad 中记录了“其他 View ”的大小,但大小不对,我还记录了 self.view.frame.size.width , 也不正确。

我读到直到 viewDidLayoutSubviews 才设置正确的尺寸,所以我尝试在那里添加我的代码,但我陷入了对 viewDidLayoutSubviews 的调用循环,永无止境.我做错了什么?

最佳答案

尝试将代码放在 viewDidAppear 中。检查 subview 是否已经是 View 的后代,如果不是,则添加具有约束的 subview 。

关于ios - 使用Autolayout时应该在哪里手动添加 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30200617/

相关文章:

ios Auto-Layout UIView on 3.5 changing height on 4.0 inch

ios - UIScrollView 在 applicationDidBecomeActive 后关闭

ios - 如何以编程方式在涉及动态文本的同一标签中提供不同的字体颜色

ios - requestAccessToEntityType - 一次还是每次?

iphone - 相同的自动布局约束在纵向和横向上表现不同

ios - iOS 10-11 上的 NSLayoutConstraint 动画问题

iphone - 未调用 fbDidLogin - iOS

iphone - 已加载 Nib ,但在为 UITableView 的 header 分配自定义 View 时未设置 View 导出

iphone - 使用关系从一对多变为一对一的实体迁移核心数据存储时出现 NSInferredMapping 模型错误

ios - 修改 CellForRowAtIndexPath 中的一个单元格会更改多个单元格