在 Xcode 9.0.1 单元格大小的 UITableviewcell 中它不会在运行时扩展?
Posted
技术标签:
【中文标题】在 Xcode 9.0.1 单元格大小的 UITableviewcell 中它不会在运行时扩展?【英文标题】:in UITableviewcell in Xcode 9.0.1 cell size it not expanding at runtime? 【发布时间】:2017-10-31 09:25:02 【问题描述】:我已尝试拖放 UITableviewcell 并从文件检查器更改行高无法在运行时扩展单元格高度。
在 Xcode 9.0.1 中,我遇到了关于单元格高度在运行时没有增加的问题。
【问题讨论】:
【参考方案1】:Swift 3+ 如果你想要动态的行高,你可以定义你的约束(确保它们是明确的),将标签的 numberOfLines 设置为零,然后在 viewDidLoad 中,告诉它行应该自动调整它们的高度:
override func viewDidLoad()
super.viewDidLoad()
tableView.estimatedRowHeight = your height here
tableView.rowHeight = UITableViewAutomaticDimension
或者试试这个。
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
return UITableViewAutomaticDimension
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat
return UITableViewAutomaticDimension
【讨论】:
【参考方案2】:您必须将单元格配置为自行调整大小:
1:将以下行添加到 viewDidLoad()。指定一个您认为是 tableView 中显示的单元格的平均高度的 tableViewRowHieght:
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 200
2:确保单元格中的所有标签都能够根据需要扩展到尽可能多的行。这是通过将属性检查器中的行数设置为 0 来完成的,就像我在下图中为我的标题标签所做的那样:
3:最后,您必须为单元格中的每个元素设置约束,以便编译器可以在运行时正确计算单元格的大小。在这里,我添加了两个标签,将第一个标签的高度限制在视图的顶部,将底部的高度限制在下面的标签 2 中。然后标签 2 必须限制在视图的底部。只要您的约束不包含单元格顶部到底部之间的“间隙”,编译器就可以计算单元格的高度:
【讨论】:
以上是关于在 Xcode 9.0.1 单元格大小的 UITableviewcell 中它不会在运行时扩展?的主要内容,如果未能解决你的问题,请参考以下文章
如何在单元格大小更改后自动调整 CollectionViewCell 中的内容大小?