2016-04-07 4 views
0

自動レイアウトでUITableViewUICollectionViewを使いたいです。しかし、彼らはintrinsicContentSizeメソッドを持っていないので、すべてのビューに対して制約を設定するのは難しいです。私はUICollectionViewためUITableViewself.collectionViewLayout.collectionViewContentSizeためcontentSizeを返すために、それらのintrinsicContentSize方法を変更した場合`UITableView`と` UICollectionView`の `intrinsicContentSize`メソッドを変更することはできますか?

は、それはOKですか? intrinsicContentSizedocumentation状態について

答えて

2

は、このメソッドをオーバーライドは、その内容に基づいてしたいどのようなサイズ レイアウトシステムと通信するためのカスタムビューを可能にします。 UITableViewUICollectionViewとして

UIViewの両方のサブクラスである、この方法はあまりにも彼らのために働かなければなりません。私はそれを使用してドキュメントに関する注意を見ません。

また、この偉大なtutorialには、自動レイアウトと本質的なコンテンツサイズについてもチェックすることができます。以下に注意してください:

カスタムビューに固有のコンテンツのサイズを実装するには、 に持っている2つのことを行う:コンテンツのための適切な サイズを返すようにintrinsicContentSizeをオーバーライドし、 何かが変わるたびinvalidateIntrinsicContentSizeを呼び出しますこれは本質的なコンテンツサイズに影響します。

だからinvalidateIntrinsicContentSizeたときに、あなたのテーブルビューリロードデータを呼び出すことを忘れないでください、など新しい行を挿入し、同じことがUICollectionViewに適用されます。

これが役に立ちます。

+0

ありがとうございました。私はUIKITがデフォルトとしてそれをしなかった理由が受け入れられるかどうか疑問に思います。 –

+0

Idk、明示的なユーザリクエスト( 'UITableView'や' UICollectionView'のサブクラス化)なしでシーンの背後で 'intrinsicContentSize'のプライベート制約を生成するオーバーヘッドを追加したくないからです。 – Storix

関連する問題