SwiftでTableViewのセルの高さを動的に変更する方法
iOSでUITableViewのセルの高さを動的に変更する(つまり、表示するコンテンツの量に応じてセルのサイズを自動調整する)には、automaticDimensionプロパティを活用する必要があります。この記事では、サンプルプロジェクトを使ってその実装手順をわかりやすく解説します。
プロジェクトの準備
まず空のプロジェクトを作成し、ViewControllerクラスを開いてUITableViewDataSourceとUITableViewDelegateに準拠させましょう。
以下のコードでは、まずテーブルを作成し、そのテーブルに対してセルを登録したうえで、いくつかのテーブルプロパティを設定しています。
tableView.delegateとtableView.dataSourceを設定し、最後にテーブルビューをビューへ追加します。この関数は、ViewControllerのviewDidLoadメソッド内で呼び出します。
ポイント:ここではestimatedRowHeightというプロパティを設定している点に注目してください。この設定により、セルの高さの自動計算が有効になります。
func initTableView() {
let tableView = UITableView()
tableView.frame = self.view.frame
tableView.dataSource = self
tableView.delegate = self
tableView.backgroundColor = colorLiteral(red: 0.6000000238, green: 0.6000000238, blue: 0.6000000238, alpha: 1)
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
tableView.estimatedRowHeight = UITableView.automaticDimension
self.view.addSubview(tableView)
}
セクション数と行数の指定
上記のコードでテーブルがビューに追加されましたが、次にテーブルに対して「セクションと行がそれぞれ何個必要か」を教える必要があります。
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 5
}
さらに、このコードではテーブルビューの2行目に長いテキストを表示させることで、コンテンツサイズに応じてセルの高さが自動的に取得される様子を確認できます。
注意:UITableViewCellにはデフォルトでlabelプロパティが用意されていますが、ラベルの表示行数は初期状態で1行に制限されています。automaticDimensionによる高さの自動調整を正しく機能させるには、この行数設定を変更しておく必要があります。
セルの高さを自動計算に設定する
最後に、テーブルの各セルがどの高さを持つべきかを指定します。
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableView.automaticDimension
}
上記のコードを実行すると、以下のように各セルの高さがコンテンツの量に合わせて自動的に調整された結果が得られます。

-
Windowsターミナルのウィンドウサイズ(高さ・幅)をデフォルトで変更する方法
Windowsターミナルを日常的に使っている方なら、その使用頻度の高さを実感していることでしょう。ターミナルを開くたびに、毎回ウィンドウサイズを調整していませんか?小さすぎたり大きすぎたりと、デフォルトのサイズが自分に合っていないケースは少なくありません。マウスでドラッグすれば一時的に調整できますが、あらかじめ好みのサイズを設定しておけば、起動するたびに自動的にその寸法で開くようになり、はるかに便利です。本記事では、Windows 11/10においてWindowsターミナルのデフォルトの高さと幅を変更する方法を詳しく解説します。 Windowsターミナルのデフォルトの高さと幅を変更する方法 こ
-
Googleスプレッドシートでセルの色を条件に応じて自動変更する方法
スプレッドシートのセルの色がデータに応じて自動的に変わるように設定できれば、大量のデータの中から状況をひと目で把握できるようになり、とても便利です。Googleスプレッドシートでは「条件付き書式」を使うことで、この機能を簡単に実現できます。この記事では、セルに入力された数値によって色を自動的に変える方法を、具体的な例を交えてわかりやすく解説します。 Googleスプレッドシートでセルの色を変更する基本手順 ここでは例として、「1週間に走った距離(マイル)を記録するスプレッドシート」を作成します。健康のためにランニング習慣をつけようとしていて、毎週の走行距離を記録・管理するために次のような表を