2013-10-04 4 views
9

ios 6とUICollectionViewを使用してiosアプリケーションの開発を開始します。 補助ビューと装飾ビューの両方のサポートがあることに気付きました。UIcollectionviewデコレーションビューVS補足図

誰かが2つの違いを箇条書きで説明できますか?彼らは非常に似ています。

コレクションビュー(ローディング中に各セクションの下部に表示される)にローダーを追加したい場合は、それを補助ビューまたはデコレーションビューにする必要がありますか?

おかげ

答えて

28

デコレーションビューは、名前が言葉通りです:装飾、クローム。コレクションビューのレイアウトのみが、それらが何であるか、どこに配置するかを決定します(たとえば、5つの項目ごとに画面に線を描きたい場合)。

補足ビューは、データに関連しています。コレクションビューのレイアウトは、どこに配置するかを決定しますが、通常のセルと同様に、コレクションビューのデータソースによって提供されます。たとえば、セクションにタイトルを付ける場合は、タイトルがセクションごとに異なり、それぞれのセクションでデータソースを呼び出す必要があるため、補助ビューを使用します。

ローダが一般的な場合は装飾ビューでも構いませんが、デコレーションビューには実際にアクセスできません(レイアウトオブジェクトにはどこに配置すればいいのか、それはコレクションビューによって作成されますそれらへの参照)、アニメーションの開始/停止をしたい場合は、デコレーションビューは最善の選択ではありません。補助ビューを使用している場合は、作成時にデータソース(collectionView:viewForSupplementaryElementOfKind:atIndexPath:メソッド)にアクセスできます。ただし、通常のデータセルが画面に配置されると、そのコレクションビューにクエリを照会することしかできません。 また、独自の装飾または補足のビューを使用する場合は、独自のUICollectionViewLayoutクラスを作成する必要があります。ベースUICollectionViewFlowLayoutは、フッターとヘッダーの補足的な表示のみを提供します。

+0

次のことを認識するまで、私はその違いについて混乱しました。補足的なビューの場合、コレクションビュー(またはストーリーボードに登録)の 'register'メソッドの1つを呼び出します。デコレーションビューでは、レイアウトオブジェクト自体に 'register'メソッドの1つを使用します。 – RyanM

関連する問題