我有一个自定义的UITableViewCell,里面有很多视图。我正在使用自动布局并根据需要设置所有约束。
但现在我需要一个主视图(在内容视图中)并将所有其他视图放入其中(某种父视图)。
这是我的单元格在界面构建器中的外观示例:
它具有使用约束设置的所有视图。
我知道有一个xcode功能可以在父视图中嵌入选定的视图:
所以我选择所有视图并选择将它们嵌入到视图中。我得到以下内容:
我的问题
虽然视图已在superview中正确嵌入,但自动布局约束已被删除,现在我必须重新创建它们。
有没有办法可以将所有视图放在superview中并具有相同的autolayout约束,而无需重新创建它们? 谢谢
答案 0 :(得分:10)
正如上面的评论所述,这种方法对我很有用:
indiestack.com/2013/12/transplanting-constraints
简而言之,方法是:
<constraints></constraints>
和<subviews></subviews>
代码<constraints></constraints>
和<subviews></subviews>
标记的内容替换为复制的内容<constraints></constraints>
内所有位置的新容器的ID。警告: 这将打破您可能已设置的限制的任何出口。其他东西,观点等的出口都没问题。
答案 1 :(得分:3)
答案 2 :(得分:0)
您是否尝试过创建容器视图的约束?您不需要重新创建所有约束。
它们看起来不正确,因为它们失去了父约束条件。
答案 3 :(得分:0)
在xib的顶层创建一个新视图。然后将现有视图拖入其中。现有的限制仍然存在。您只需为嵌入设置新的约束。