我是iOS开发新手,在AutoLayout约束方面遇到了麻烦。我试图将标签“钉”到TableViewCell的右侧。它在iPhone 4s-5s模拟器中工作得很好,但在iPhone 6 (plus)模拟器中却不行。
标签上的约束是容器边距的顶部空间,以及导致容器边距的空间,如下所示:

在4s/5/5s模拟器中,它看起来像是我所期望的,但是6+模拟器,我得到了以下信息:

同样的问题也存在于6,但程度较小。
如果我把前导空白处换成边距,标签就会脱落,在每个仿真器中留下一个空白单元格。
但是,如果我向普通视图添加完全相同的布局约束,标签就会对齐。这种情况只发生在自定义TableViewCell中。
大小类中的宽度和高度都设置为任意。如果我扩展单元格的宽度,将标签移到右边,然后收缩单元格,使标签远离边,然后调整约束,标签至少会在6+上靠近右边。问题是,在任何较小的地方,它都会从侧面掉下来。
如何使标签在TableViewCell中的所有设备中与右对齐,或者这只是模拟器中的一个问题?我实际上没有一个6+来测试它。
发布于 2014-11-22 01:33:02
在您的情况下,要将一个对象固定在视图的右侧,唯一需要的约束是
如果标签的宽度是可变的,您可能想:
如果在您的示例中将前导空间更改为拖尾空间约束后,您将看到标签消失,那么我将确保父表视图约束是正确的,并且表视图不会溢出屏幕边缘。
发布于 2014-11-22 01:26:31
如果我将前导空格改为边距,则标签会脱落,在每个模拟器中留下一个空白单元格。
事实并非如此。删除前导空间约束。从标签的右边缘到contentView的右边缘设置一个尾部空间约束--不是到它的边缘,而是视图本身。这就是你所需要的。
https://stackoverflow.com/questions/27073003
复制相似问题