AutoLayout标签在屏幕右侧被切断

时间:2014-10-29 21:41:48

标签: ios uitableview storyboard xcode6

我试图在我的应用中使用自动布局来自定义表视图单元格。

我似乎无法将约束条件做得恰到好处。

我将标签放在自定义表视图单元格中,但标签仍然被切断。有什么想法吗?

谢谢!将发布任何其他需要。试图在下面显示所需的信息:

在Xcode中调试。不知何故,Simulator中显示的内容与Xcode调试中的内容不同。

这里显示的是我的TableView的宽度: enter image description here

更新 这里的问题与用户matt在接受的答案中所说的有关,但我想让Q& A更清楚一点,因为我已经找到了其他遇到此问题的人。

在他最初的评论中,他提到了Xcode View调试,这非常棒,而且我能够进一步深入研究。它被称为辅助编辑器:设备预览,您可以在其中查看屏幕上的内容的布局和图层,以查看是否有标签重叠或根据其运行的设备离开屏幕。如果要检查多个设备大小,只需点击此图片左下角的加号图标即可。 enter image description here

这有助于我找到TableView的重叠层和大小调整问题。我能够看到每个设备尺寸的样子。

有时使用Pin菜单也有帮助。有时标签可以在屏幕外运行,因为它不知道单元的约束在何处基于设备大小。因此,如果标签基于横向布局,但您的标签可以在屏幕外运行,但设备是iPhone 5,例如在肖像中。这是Pin菜单:

enter image description here

希望有意义并为问题提供更多颜色。如果您有任何问题,请告诉我,谢谢大家的帮助!

4 个答案:

答案 0 :(得分:10)

问题是您使用的是自动布局,但是您没有对调整表格视图做任何事情。此处的表格视图不是您的视图控制器视图;这是一个子视图。视图控制器的视图会自动调整为设备/窗口的大小,但其子视图不会自动调整大小。所以你最终得到的表视图对于设备来说太宽了;整张桌子伸到右侧的空间里。

答案 1 :(得分:3)

使用标签右侧到超级视图边缘的尾随空格,并将其设置为greater than而不是equals,值为~5

答案 2 :(得分:2)

使用View查看tableview的约束。使用不同颜色绘制单元格边框,标签边框和tableview边框,以了解哪些元素无法正确显示。

例如:

#import <QuartzCore/QuartzCore.h>

...
cell.layer.border.width = 1;
cell.layer.border.color = [UIColor blackColor].CGColor;

答案 3 :(得分:0)

对我来说解决被裁剪视图的问题是取消选中“自动布局”中的“约束到边距”。

enter image description here