2

動的な高さを持つセルでコレクション ビューを実装しようとしています。

一部のコレクション ビュー セルには UITextView が含まれており、UITextView の高さは次のように構成されています。

    [textViewHeightConstraint setConstant: numberOfRowsToDisplay * [[textView font] lineHeight]];

textview は、特定の .xib にある別のビューのサブビューです。この xib ビューは、セルがデキューされるとき (collectionView:cellForItemAtIndexPath: が呼び出されるとき) にセルのサブビューとして追加されます。

しかし、セル インスタンスにアクセスできない "collectionView:sizeForItemAtIndexPath:" メソッドでセルの高さを返す必要があるため、textview : [[textView font] lineHeight] プロパティにアクセスできません。

どうすればそれを解決できますか?

PS : textview は空であるため、高さは sizeWithFont: メソッドを呼び出すことができる NSString に依存せず、textview の高さをハードコーディングすることはできません。「numberOfRowsToDisplay」は実行時に取得され、textView フォントもハードコーディングされません。

編集:私はすでに「collectionView:sizeForItemAtIndexPath:」メソッドで「dequeueReusableCellWithReuseIdentifier:forIndexPath:」を呼び出そうとしましたが、「collectionView:cellForItemAtIndexPath:」を呼び出しているかのように、無限ループが作成されます。

4

1 に答える 1

-1

ビュー コントローラーをフロー レイアウト クラスのデリゲートとして設定する必要があります。

ここを参照してください: UICollectionViewDelegateFlowLayout プロトコル リファレンス

于 2013-08-08T15:47:50.587 に答える