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动态表格单元格高度[重复]的主要内容,如果未能解决你的问题,请参考以下文章

ios swift - 表格视图单元格动态高度取决于设备

使用 Storyboard 的 Swift 动态表格视图单元格高度

动态表格视图单元格高度

来自自定义 Xib 的表格视图中的动态单元格大小 [重复]

如何根据swift 3中的集合视图高度动态增加表格视图高度?

具有动态高度单元格但所有单元格同时显示的 iOS 表格视图