【Swift】UITableViewのセルの高さを個別で指定する方法

先週に続いて、今日も Swift の UITableView の操作方法についてです。
今までは、単純なデータの表示くらいしかやったことがなかったので、予想以上に TableView が自由自在に操作ができて、若干驚いています。
今回は、Table セルの高さを個別に指定する方法です。

参考にさせていただいた記事はこちらから。

【Swift】TableViewでセルの高さを変更しよう – Qiita
https://qiita.com/misakiagata/items/3793a00e386c7a3ff39a

 

実装は下記のように関数をオーバーライドすればOKです。

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    if indexPath.row > 0 {
        return 50.0
    } else {
        return 100.0
    }
}

上記の関数で高さを float 型で返せば、該当するセルがその高さになります。
サンプルコードでは、1行目のセルだけ高さを 100 にし、それ以外のセルを 50 にしています。
処理を変えれば、奇数行は高さ 50、偶数行は高さ 100 などにすることもできます。
…実際にその処理が必要かどうかはわかりませんが…。
実装する処理としては以上です。

なお、蛇足ですが、セルの高さを可変にしたい場合は下記のように指定します。

self.tableView.estimatedRowHeight = 50
self.tableView.rowHeight = UITableView.automaticDimension

estimatedRowHeight はセルの見積もりの高さとのことです。
最初はこちらの書き方をしていたのですが、2行目以降のセルの高さが低すぎてレイアウトが崩れてしまったので、手動で指定するように変更しました。

 

以上、Swift で UITableView の高さをセルごとに指定する方法でした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG