Autolayout 需要负常量才能与 superview 对齐?
Autolayout requires negative constant to align with superview?
我的情节提要中的约束有些奇怪。每当我希望子视图的边缘与视图控制器的超级视图(前导、尾随、顶部、底部)对齐时,我必须将常量设置为 -16。它应该为 0,因为父视图边缘和子视图之间的差异为 0。但是,将其设置为 0 可以有效地在子视图边缘和父视图之间提供 +16 缓冲区。
为什么我需要将它设置为-16?
Any time I want the edges of a subview to align with the view controller's superview
不,那不是你在做的。那就是问题所在。您已经(不小心)将您的约束固定到超级视图的 margin 而不是它的 edge。这之间有一个关键的区别:
和这个(按住 Option 键):
我的情节提要中的约束有些奇怪。每当我希望子视图的边缘与视图控制器的超级视图(前导、尾随、顶部、底部)对齐时,我必须将常量设置为 -16。它应该为 0,因为父视图边缘和子视图之间的差异为 0。但是,将其设置为 0 可以有效地在子视图边缘和父视图之间提供 +16 缓冲区。
为什么我需要将它设置为-16?
Any time I want the edges of a subview to align with the view controller's superview
不,那不是你在做的。那就是问题所在。您已经(不小心)将您的约束固定到超级视图的 margin 而不是它的 edge。这之间有一个关键的区别:
和这个(按住 Option 键):