2013-01-07 5 views
6

UICollectionViewを使用して、非常に簡単なサンプル(ソースコードgithub)を作成しました。なぜ私のUICollectionViewが自動化されていないのですか

アプリがポートレートモードになっている限り、すべて正常に機能しています。ただし、ランドスケープモードに変更すると、コンテンツセルのサイズが適切に変更されず、何も表示されません。

私は、必要なすべてのAutoLayout制約が適切であると考えました。私はcollectionView:layout:sizeForItemAtIndexPath:を実装することができると認識していますが、私の目標はAutoLayoutを可能な限り使用することです(AutoLayoutをよりよく理解すること)。

私はここで何が欠けていますか?

答えて

9

autolayoutを使用して、コレクションビューの位置とサイズを設定できます。また、autolayoutを使用して、各セル内のサブビューの位置とサイズを設定できます。しかし、オートレイアウトを使用してセルの位置とサイズを制御することはできません。コレクションビューのレイアウトオブジェクトを使用して、各コレクションビューセルの位置とサイズを設定する必要があります。インターフェイスの向きが変わったときにセルのサイズを変更するには、レイアウトオブジェクトを更新して新しいサイズを報告し、レイアウトを無効にする必要があります。

+2

iOS 8以降、セルサイズ自体を作成することができます。レイアウトは適切な場合にセルのインスタンスを作成し、自動レイアウト制約を使用するか、sizeThatFits:をオーバーライドすることができます。レイアウトにはestimatedItemSizeプロパティが設定されている必要があります。 – fatuhoku

関連する問題