Edited at

【TIPS】UITableViewCellの高さの自動計算されてないときの対処法

iOS開発でハマったのでメモとして残しておく


事象

iOS11ではUITableViewのレイアウトが崩れていないのにiOS10ではUITableViewのレイアウトが崩れてしまっていた。


原因


  • 自動で高さを計算してくれてなかった。

  • AutoLayoutの制約をStoryboardではなくコード上でレイアウトが組まれていただけだった。


対処


  • iOS10以前もサポートするアプリは

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

return UITableViewAutomaticDimension
}

これでOSのバージョンに関係なく高さを自動で計算できます。


参考

UITableViewのrowHeightやestimatedRowHeightに何を設定すると良いのか