我向哪个超级视图添加约束是不是重要?
Posted
技术标签:
【中文标题】我向哪个超级视图添加约束是不是重要?【英文标题】:Does it matter which superview I add constraints to?我向哪个超级视图添加约束是否重要? 【发布时间】:2013-08-11 20:39:02 【问题描述】:假设我有 3 个视图
A|----------|
| B|-----| |
| | C ▢ | |
| |_____| |
|__________|
如果我有一个涉及视图 B 和视图 C 的约束。
documentation 建议添加到视图 C 是非法的:
将其添加到视图 A 或视图 B 是否重要? 添加到一个超级视图而不是另一个有什么影响吗? 是否有任何方便的含义? (例如,如果所有约束都在一个地方,会更容易管理吗?)约束必须只涉及接收视图范围内的视图。具体来说,涉及的任何视图必须是接收视图本身,或者是接收视图的子视图。添加到视图的约束被称为由该视图持有。评估约束时使用的坐标系是持有该约束的视图的坐标系。
【问题讨论】:
【参考方案1】: 将其添加到视图 A 或视图 B 都没有关系,只要它们满足您在文档中引用的要求即可。编辑:
此评论来自UIView.h,上面用于安装约束的方法:
/* A constraint is typically installed on the closest common ancestor of the views involved in the constraint.
It is required that a constraint be installed on _a_ common ancestor of every view involved. The numbers in a constraint are interpreted in the coordinate system of the view it is installed on. A view is considered to be an ancestor of itself.
*/
【讨论】:
以上是关于我向哪个超级视图添加约束是不是重要?的主要内容,如果未能解决你的问题,请参考以下文章
在 Xcode 中,如何重命名 Storyboard 中的约束?