您可以使用弹簧和支柱来调整不同设备的 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 模拟器中不起作用 [关闭]