iOS布局为什么中心约束不够?
问题描述:
我真的不明白这个......的逻辑......奇怪的iOS布局系统。iOS布局为什么中心约束不够?
我把一个UILabel的约束对齐中心X到Superview。
为什么它抱怨需要X位置的新约束?
center is center no?
答
您需要详细了解视图的水平位置。居中视图并没有说它具有固定的宽度,或者应该保持视图周围的前/后空间。
这里有两个可能的选项(也有与固定纵横比固定的高度,如在@Moshe他的回答说):
- 你的视图将始终具有的61的宽度(例如) :
- 你的视图将具有在左/右侧的固定前缘和后空间:
答
该警告是误用。这并不意味着没有限制。应该说“没有足够的约束来计算X位置”。
您需要为X的位置添加一个约束,但是您还需要给自动布局提供足够的约束来计算视图的宽度。
您既可以提供领先空间也可以提供尾部空间,或者您可以提供宽度,或者您可以提供高度和比率。 Autolayout只需要一些工作。
答
如果你确实添加了一个中心x约束,这应该是足够的自动布局来计算x位置。但是你确定你没有设置中心和约束吗?在Interface Builder中拖动这些行的方向可能会造成混淆,因此当您打算设置x约束时,您可能会不小心设置了约束条件。如果您尝试居中x,则您仍然需要y位置的约束,无论是垂直居中还是从顶部或底部到超视图或其他视图的空间。
它还需要知道宽度是固定的,还是应该随屏幕扩展。 – rdurand 2014-09-19 12:58:48
另外,请看[Ray Wenderlich的2部分自动布局教程](http://www.raywenderlich.com/50317/beginning-auto-layout-tutorial-in-ios-7-part-1) – rdurand 2014-09-19 13:11:40