Swift动态表格单元格高度[重复]
Posted
技术标签:
【中文标题】Swift动态表格单元格高度[重复]【英文标题】:Swift dynamic table cell height [duplicate] 【发布时间】:2016-08-03 02:41:13 【问题描述】:我有带有原型单元格的表格视图, 在单元格中,我有 imageview 和一些文本。 文本标签是原型单元格中的一行,但有时不止一行,我在服务器调用后将数据加载到表视图中。 故事板 Lines 中的标签设置为 0,换行符设置为 Word Wrap。 我也试过http://candycode.io/automatically-resizing-uitableviewcells-with-dynamic-text-height-using-auto-layout/
但没有效果。 如果我使用Using Auto Layout in UITableView for dynamic cell layouts & variable row heights 一切正常,因为标签文本是预定义的,但我正在从服务器加载数据,并在 API 调用后重新加载 tableView,然后标签只是一行。
【问题讨论】:
您的标签是否对 tableViewCell 有底部约束? 是的,我使用了建议的约束,我应该删除它吗? 见***.com/questions/36437861/… 它不是重复的,因为如果我有数据,这可以工作,但是我在创建 tableview 之后加载数据,然后调用 reloadData() 不,不要删除它...尝试按照@Scriptable建议的链接的答案 【参考方案1】:您应该使用UITableViewAutomaticDimension
提供了一种显示动态内容的解决方案。
在viewDidLoad
中使用以下代码:
tableView.estimatedRowHeight = YourTableViewCellHeight
tableView.rowHeight = UITableView.automaticDimension
Read more from here
希望对您有所帮助。 :)
【讨论】:
这适用于自动布局!我还补充说,需要“tableView.estimatedRowHeight = xxx”才能使其工作,它不是可选的。 raywenderlich.com/1067-self-sizing-table-view-cells【参考方案2】:确保 UILabel 高度约束不是恒定的,如果恒定则必须从属性检查器设置 Relation 大于或等于
确保根据您的设置 UITableViewestimate 行高。
tableView.estimatedRowHeight = 85
写在UITableViewCell
类
cell.lbl_name.sizeToFit()
cell.lbl_name.numberOfLines = 0
确保您的UITableViewDelegate
方法
func tableView(tableView: UITableView,
heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
return UITableView.automaticDimension
【讨论】:
以上是关于Swift动态表格单元格高度[重复]的主要内容,如果未能解决你的问题,请参考以下文章
使用 Storyboard 的 Swift 动态表格视图单元格高度