2012-05-03 14 views
1

カスタムセルを作成する場合は、通常、セルのコンテンツビューにUIViewサブクラスを追加します。私のサブビューのレイアウトについては、ペン先を使用します。そして、私はペン先を私のUIViewサブクラスに接続します。私の問題は、動的にコンテンツのサイズを設定する方法です。私の意見にはUILabelsがたくさんあるとします。私はlayoutSubviewsを使用してすべてのサブビューを配置しますが、それが完了するまで、私は本当に自分のセルの高さを知っています。だから、現在に私のサブビューを設定し、layoutIfNeededに電話して、すべてが適切に配置されるようにしてください。今私は自分のセルの高さを知り、それをtableView:heightForRowAtIndexPathメソッドで返します。しかし今ではtableView:cellForRowAtIndexPathが呼び出されると、与えられたセルの高さは44.0になります。私はそれに私のサブビューを追加しました - 私のサブビューは、親の境界の外です。その後、セルがiOSで必要な高さにリサイズされると、autoresizingMaskが原因でコンテンツが破棄されます。ちょうどこれが他の人が取り組んでいる問題であるかどうか、あるいは私が完全に間違っているかどうかを調べようとしています。それはちょうど私たちが高さを求め、その高さではないセルを作成することを逆にしているようです。UITableViewCell - Nibsから動的サイズのコンテンツビューを処理する方法

答えて

2

残念ながら、これはUITableViewsのしくみです。実際にUITableViewCellsがレンダリングされる前に高さを指定する必要があります。 はい、誰もがそれに対処しなければなりません。 :)

あなたはすべてのカスタムcontentViewsを追加し、NSArrayのを作成することができ、予想contentView境界に応じて自分のframeを設定し、tableView:heightForRowAtIndexPath:tableView:cellForRowAtIndexPath:にデータソースとしてこの配列を使用します。これは正確には効率的ではありませんが、小さなデータセットでは問題ありません。 SO上 UITableViewCell Dynamic Height (by Matt Long)

同様の質問: How can I do variable height table cells on the iPhone properly?

また、ここでは、このトピックでの素敵なチュートリアルです

関連する問題