Xcode - 向UITableView添加约束,使其适合所有屏幕尺寸

时间:2015-04-22 17:02:22

标签: ios xcode uitableview nslayoutconstraint

我已经阅读了很多教程并观看了许多关于在Xcode中使用约束的视频。出于某种原因,我仍然缺少某些方面,这些方面使得用户界面看起来与所有屏幕尺寸一样。

目前,我在视图控制器上放置了一个UITableView。视图控制器设置为“推断”大小,我在助手编辑器预览中打开了所有不同大小的设备,因此我可以查看更改。我遇到了多个问题,试图让不同屏幕尺寸的约束更正。

问题1:UITableView的宽度设置为600.这会导致iPad预览中表格视图右侧出现死角,导致UITableView在较小的设备上延伸得太远。如果我使表格视图的宽度变小,使其适合所有屏幕尺寸的预览,然后通过指定0并取消选中约束到边距,将表格视图的左右边缘固定到Superview的边缘,结果我在预览中看到整个表视图从每个设备大小完全消失。我对此感到惊讶,因为我认为通过将表格视图固定到边距,它会使表格视图适合每个屏幕。

问题2 :(这与上面的问题1完全不同。)在这种情况下,我将表视图的大小保留为600,并且只为包含在其中的单元格的内部组件指定了约束。实现代码如下。在这种情况下,表格视图对于iPad尺寸仍然略微不够宽,并且在较小的设备上延伸得太远,这使得单元格中的组件被截断并偏离中心。

我主要在任何宽度,任意高度设置的故事板中工作。但是,如果我将设置更改为紧凑宽度,任何高度,我可以更改约束以更好地适应较小的设备,但仍然存在使5.5英寸屏幕和较小设备之间工作的问题。

我想让我的UITableView一直延伸到每个设备的边缘,我希望单元格内部的视图保持居中,并保持每个设备上的相对大小。有没有人对如何做到这一点有任何建议?

1 个答案:

答案 0 :(得分:2)

如果你想让你的tableview“填充”整个屏幕(与设备无关),你唯一需要做的就是将它的4个边缘(顶部,左边,底部,右边)固定到它的超视图(viewcontrollers在你的情况下查看)常量为0。 你没有指定特定的宽度(如你的情况600)或高度。

祝你好运:)