我有一个自定义单元格:
但是当tableView加载时,我已经在其中覆盖了单元格:
我已尝试将以下代码插入viewDidLoad()
:
tableView.estimatedRowHeight = tableView.rowHeight
tableView.rowHeight = UITableViewAutomaticDimension
但确实没有帮助。
答案 0 :(得分:1)
来自文档:
//Declaration
//SWIFT
optional func tableView(_ tableView: UITableView,
heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
//OBJECTIVE-C
- (CGFloat)tableView:(UITableView *)tableView
heightForRowAtIndexPath:(NSIndexPath *)indexPath
使方法返回单元格的高度。如果这没有用,那么你需要给我们更多细节(可能还有约束)。
编辑: 我设法通过做两件事来解决这个问题:
更改这两行:
tableView.estimatedRowHeight = 150
tableView.rowHeight = UITableViewAutomaticDimension
tableview会自动使单元格变小
如果您愿意,我可以向您发送项目的工作副本,只需提供一些联系邮件或某事。
答案 1 :(得分:0)
执行此操作时:
tableView.estimatedRowHeight = tableView.rowHeight
假设tableView是一个UITableView,在这里你需要给出一个数字,而不是UITableView的rowHeight属性(类似于100)。
在这里你给出一个估计的高度,只是让手机计算表的总高度,它不是每个单元的实际高度。所以给出你估计的平均值。
tableView.rowHeight = UITableViewAutomaticDimension
没问题。
还要查看单元格视图中的约束。要完成这项工作,您必须从顶部到底部以及标签的中间设置约束。
修改:我发现缺少最后一个约束(日期标签的底部约束)
现在,看到代码,我会说这个方法不是必需的:
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return UITableViewAutomaticDimension
}
希望它有所帮助。