自動サイズ化テーブルビューセルの操作
iOS では、自動レイアウトを使用してテーブルビューのセルの高さを定義できます。ただし、この機能はデフォルトでは有効になっていません。
通常、セルの高さは、テーブルビューデリゲートの tableView:heightForRowAtIndexPath: メソッドによって決定されます。自動サイズ化テーブルテーブルビューセルを有効にするには、テーブルビューの rowHeight プロパティを UITableViewAutomaticDimension に設定しなければなりません。また、estimatedRowHeight プロパティに値を割り当てなければなりません。これらのプロパティの両方が設定されるとすぐに、システムは自動レイアウトを使用して行の実際の高さを計算します。
1 tableView.estimatedRowHeight = 85.0 2 tableView.rowHeight = UITableViewAutomaticDimension
次に、テーブルビューのセルのコンテンツをセルのコンテンツビュー内にレイアウトします。セルの高さを定義するには、コンテンツビューの上端と下端の間の領域を埋めるために、(高さが定義された) 制約とビューの切れ目のないチェーンが必要です。ビューに固有のコンテンツの高さがある場合、システムはそれらの値を使用します。そうでない場合は、ビューまたはコンテンツビュー自体に、適切な高さ制約を追加しなければなりません。
さらに、推定される行の高さをできるだけ正確にするようにしてください。システムは、これらの推定に基づいて、スクロールバーの高さなどの項目を計算します。推定が正確であるほど、ユーザエクスペリエンスはよりシームレスになります。
テーブルビューのセルを操作する場合、事前に定義されたコンテンツ (たとえば、textLabel、detailTextLabel、imageView プロパティなど) のレイアウトを変更することはできません。
次の制約がサポートされています。
- セルのコンテンツビューを基準にしてサブビューを配置する制約。
- セルの境界を基準にしてサブビューを配置する制約。
- 事前に定義されたコンテンツを基準にしてサブビューを配置する制約。
前:スクロールビューの操作 次:制約の変更