2013-10-04 77 views
9

我開始使用ios 6和UICollectionView開發ios應用程序。 我注意到它支持補充視圖和裝飾視圖。UIcollectionview裝飾視圖VS補充視圖

有人可以請解釋一下兩者之間的區別嗎?他們聽起來很相似。

如果我想在我的收藏視圖中添加一個加載器(它將出現在每個部分的底部,而該部分正在加載),它應該是補充視圖還是裝飾視圖?

謝謝

回答

28

裝飾視圖正是名稱所說:裝飾,鉻。只有集合視圖佈局決定它們是什麼以及放置它們的位置(例如,如果要每隔5個項目在屏幕上畫線)。

補充視圖與您的數據更相關。集合視圖佈局仍決定將它們放在哪裏,但它們由集合視圖數據源提供,就像常規單元格一樣。例如,如果您想爲章節放置標題,則可以使用補充視圖,因爲每個章節的標題都會有所不同,並且您需要爲每個章節調用數據源。

如果你的加載器是通用的,它可能是一個裝飾視圖,但是裝飾視圖並不是真正可以訪問的(佈局對象說明把它們放在哪裏,就是這樣,它們是由集合視圖創建的,對他們的引用),所以如果你想開始/停止動畫,裝飾視圖不是最好的選擇。如果您使用補充視圖,那麼您可以在創建時訪問它(在您的數據源collectionView:viewForSupplementaryElementOfKind:atIndexPath:方法中)。但是,只能在屏幕上佈置常規數據單元格後才能查詢集合視圖。 此外,如果您想使用自定義裝飾或補充視圖,則必須編寫自己的UICollectionViewLayout課程。基地UICollectionViewFlowLayout只提供頁腳和標題補充視圖。

+0

我對這個區別感到困惑,直到我意識到以下情況:對於補充視圖,您可以調用集合視圖(或在故事板中註冊)上的'register'方法之一。對於裝飾視圖,您可以使用佈局對象本身的'register'方法之一。 – RyanM