我正在尝试根据可以是一行或多行的 UILabel 的大小调整 tableviewcell 的大小。我需要为应用程序的其余部分打开自动布局,所以我不想关闭它来让它工作。目标是 iOS 7 和 iOS 8。
我尝试了几种解决方案,但由于某种原因,我似乎无法获得正确的标签高度来自动调整或调整单元格高度。
问题出现在这个方法中:calculateHeightForConfiguredSizingCell。我已经在 Git 上放了一个示例项目,所以你可以看到我所看到的。
https://github.com/mdaymond/cellResizer
此示例基于这篇文章:http://www.raywenderlich.com/73602/dynamic-table-view-cell-height-auto-layout
更新 我检查了代码的更新。它几乎按照我想要的方式工作并以编程方式计算,但由于某种原因,标签高度的大小不正确 - 它没有获得所需的完整高度。原始代码的问题是标签需要明确的宽度。
最佳答案
我们开始吧,如果您支持 IOS 7,那么您需要在您的类中实现 UITableViewDelegate
协议(protocol),然后覆盖:
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
}
有关基于标签文本长度的动态自定义 UITableViewCell 高度的更多信息(查看此内容),您可以将代码放在 heightForRowAtIndexPath
函数中:
height based on label text length
同时覆盖:
func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
// example to return the estimated height
return 280
}
注意:通过支持 IOS 7,您应该手动处理它。没有比 IOS 8 更简单的方法了。
但是如果你只支持IOS 8及更高版本那么你可以简单地在以下两行中完成:
self.tableView.estimatedRowHeight = 280
self.tableView.rowHeight = UITableViewAutomaticDimension
关于ios - 自动调整 uitableviewcell 的大小 - SWIFT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30052930/