web-dev-qa-db-ja.com

UITableViewCell:プロトタイプセルのカスタム行の高さ

ストーリーボードファイルでは、UITableViewで複数のプロトタイプセルを設計しています。各セルには、独自のセル識別子があります。

セクションと行に応じて、メソッドのプロトタイプセルの1つをデキューします-tableView:cellForRowAtIndexPath:

ほとんどのプロトタイプセルでは、行の高さを変更していません。私のストーリーボードでは、それらの高さはUITableViewの「サイズインスペクター」の下にある「行の高さ」プロパティによって決定されるようです。

1つのプロトタイプセルについて、特定のUITableViewCellの「サイズインスペクター」の下にある「行の高さ」プロパティを使用して高さを変更しました。チェックボックス「カスタム」もチェックされています。

私のストーリーボードでは、これはうまく機能しているようです。ただし、実行時にセルがデキューされてTableViewに追加されると、すべてのセルがデフォルトの行の高さになります。

これで、他の投稿で言及されているtableView:heightForRowAtIndexPath:メソッドを認識していますが、ストーリーボードでカスタム行の高さをすでに設定しているため、使用するのは少し奇妙に思えます。

このプロパティが機能しない理由を誰かが知っていますか?このプロパティは、さまざまな状況で使用するために修正される可能性がありますか?

ありがとう

22
Brabbeldas

heightForRowAtIndexPathが呼び出されます(テーブルの各行に対して)セル​​が表示されます。つまり、cellForRowAtIndexPathが呼び出される前です。これは、基になるスクロールビュー、スクロールインジケーターなどのレイアウトを計算するために必要です。

16
Martin R

Xcode5のInterfaceBuilderを使用して、コードなしでテーブルビューの行の高さを変更する場合は、次の2つの場所で行うことができます。

  • テーブルビューを選択し、サイズインスペクターを表示して、テーブルビューサイズセクションの行の高さに入力します。

Default row height

  • プロトタイプセルを選択し、サイズインスペクターを表示し、テーブルビューサイズセクションでカスタムをチェックし、関連するテキストフィールドに行の高さを入力します。

Custom row height

2番目の方法を使用している可能性がありますか?最初の方法を使用してテーブルビューのすべての行のデフォルトの高さを設定し、2番目の方法を使用してInterfaceBuilderに例外について通知してみてください。

19
enreas