iOS:根据屏幕大小调整 TableView 的大小

Posted

技术标签:

【中文标题】iOS:根据屏幕大小调整 TableView 的大小【英文标题】:iOS: Resizing TableView depending on screen size 【发布时间】:2015-12-29 18:10:03 【问题描述】:

我正在尝试根据屏幕大小调整表格视图的大小。该应用程序是为 iPhone 6 设计的,因此如果屏幕较小,它应该基本上会缩小。我尝试使用约束和固定到超级视图,但它似乎只适用于高度。我想我可能也必须调整单元格的大小,但我不知道该怎么做。

我知道这个问题很笼统,但我绝对不知道第一件事。

感谢您的帮助。

【问题讨论】:

您是否设置了水平和垂直布局约束? 是否可以包含一个显示错误调整大小的表格视图的屏幕截图? 你只需要像这个答案一样固定所有边缘...***.com/questions/31399330/… ....就是这样!! 【参考方案1】:

您需要为您的表格视图和单元格使用自动布局,否则 ios 只会尝试猜测缺少的约束(很差)。确保同时设置水平和垂直约束。

【讨论】:

这就是我的想法,但我不确定如何对单元格执行此操作,因为我无法通过编辑器固定到超级视图,我应该将单元格固定到代码中的表格视图吗?该单元格有自己的 xib,它是一个自定义单元格。 只要你映射了单元格xib中的所有约束,并且对包含的tableview等也做了同样的事情,我认为你不需要。当我设置我的表格时,我通常在我的故事板中使用单元原型,因此我的视图层次结构在超级视图等方面是正确的。如果它由于某种原因对你不起作用,你可能必须在代码中这样做你建议。 好的,但是如何设置单元格 xib 的约束?我不能在编辑器中这样做,因为没有超级视图可言。如何在不使用代码的情况下约束它以适应表格视图的大小?【参考方案2】:

如果您可以禁用autolayout 并使用AutoResizing,这可能很容易。 禁用 autolayout 后,在 xib 中选择您的 table 并转到右窗格上的 Size inspector。在那个设置自动调整大小如下

它可以自动调整高度和宽度。不管屏幕大小。

补充:如果底部有多余的空行隐藏大小,可以通过以下代码删除:

self.table.tableFooterView = UIView()

【讨论】:

我尝试了你所说的,但它似乎搞砸了推送序列...知道如何避免它吗? 你能解释一下什么是烂摊子吗?

以上是关于iOS:根据屏幕大小调整 TableView 的大小的主要内容,如果未能解决你的问题,请参考以下文章

TableView Height 无法在 IOS 中调整大小

iOS Swift UIImage 调整大小影响性能的问题;调整大小时出现意外尺寸[重复]

根据来自服务器的图像调整imageview大小,然后调整其他标签

ios通过容器视图调整scrollview的大小,里面有tableview

根据内容动态调整tableview单元格的高度 - iOS Swift

调整 TableView 大小时,Swift 3.0 表格单元格未填充