×

iOS UITableView 自适应高度的注意事项

96
Guaidaodl
2016.07.19 20:24* 字数 238

自从 iOS 8 以后, 自适应高度的 cell 就变得非常简单. 只需要两步就可以做到了:

  1. 给 cell 设置合适的约束, 合适的约束是指, 根据约束你可以算出具体的高度. 具体的可以参考官方文档

  2. 设置将 TableView 的 rowHeight 设为UITableViewAutomaticDimension. 并设置合理的 estimatedRowHeight. 对于多种类型的 Cell 的 TableView 可能需要对不同的 cell 设置不同的estimatedRowHeight. 这个时候可以通过实现 UITableViewDelegate 的两个方法来实现:

  func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat
  
  func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat

注意事项
当高度变成自适应后不代表你就需要在关注单元格的高度, Apple 的官方文档强调 estimatedRowHeight 设置得越精确越好. 因为系统需要利用 estimatedRowHeight 来计算滚动条的高度和位置等数据. 如果你提供的预估高度跟实际问题就可以导致一些滚动上的问题, 影响用户体验.

其他
Web note ad 1