您可以使用弹簧和支柱来调整不同设备的 TableViewCell 大小吗?

Posted

技术标签:

【中文标题】您可以使用弹簧和支柱来调整不同设备的 TableViewCell 大小吗?【英文标题】:Can you use springs & struts to adjust TableViewCell size for different devices? 【发布时间】:2016-11-30 00:41:38 【问题描述】:

我正在构建一个包含 TableView(XCode 8、ios 10)的简单界面。大多数界面很容易用弹簧和支柱设计。但是,我看不到为 TableViewCell 或 ContentView 设置弹簧的方法。因此,当我将设备调整为更大的尺寸(如 iPad)时,行保持相同的高度,为 44 磅。

我在这里不处理任何动态内容,所有行的高度相同就可以了。我只是在寻找一种快速简便的方法来调整不同设备的行高,使它们看起来更成比例。

TableCell 包含几个标签,如果重要的话,这些标签具有为较大的设备指定的较大字体大小 (wR hR)。标签在垂直和水平方向都设置为弹性,但目前仅在水平方向变化。

有没有办法使用弹簧和支柱来做到这一点,还是我需要将其切换到自动布局?

谢谢。

【问题讨论】:

我认为它要么是用于单元格高度和自动布局的 UITableViewAutomaticDimension,要么是因为您可以为每个单元格使用相同的大小,您可以使用 'heightForRowAt' 函数和类似 'return self.view.frame .size.height / 6' @jovanjovanovic 不,如果所有行的高度相同,请不要使用heightForRowAt。相反,只需设置一次表格视图的rowHeight 属性(可能在viewDidLoad 中)。 @rmaddy 轮换呢? @jovanjovanovic 公平点。然后在viewWillTransition方法中设置rowHeight @jovanjovanovic,效果很好。如果您发布答案,我会接受。就我而言,我只使用肖像,所以我相信我会按照 rmaddy 的建议将其放入 viewDidLoad。同时,我感谢你们俩的帮助! 【参考方案1】:

我认为您应该使用UITableViewAutomaticDimension 来设置单元格高度和自动布局,或者,由于每个单元格的大小相同,您可以使用heightForRowAt 函数并返回类似return self.view.frame.size.height / 6 的内容

【讨论】:

设置表格视图的rowHeight 属性比在所有行具有相同高度时实现heightForRowAt 委托要高效得多。

以上是关于您可以使用弹簧和支柱来调整不同设备的 TableViewCell 大小吗?的主要内容,如果未能解决你的问题,请参考以下文章

尺寸检查器的自动调整大小掩码中的支柱和弹簧似乎在 iOS5 模拟器中不起作用 [关闭]

如何自动调整可可 xcode 的大小?

如何用astropy,python中的astropy的make_lupton_rgb来创建“创造的支柱”的好图像?

自动调整不同设备字体大小的最佳方法?

DMS 表空间启用和禁用自动调整大小功能

扭转弹簧的性能及应用都有哪些?