2013-01-25 23 views
9

我想將標題設置爲集合視圖,就像UITableViewController的setTableHeader一樣。如何將整個標題視圖設置爲UICollectionView?

我找到了在集合視圖中設置每個部分標題的方法,但是我找不到如何設置整個標題的標題視圖。

Apple對UICollectionViewLayout的引用說「補充視圖呈現數據,但不同於單元格,與單元不同,用戶不能選擇補充視圖,而是使用補充視圖來實現給定部分的頁眉和頁腳視圖或者整個集合視圖,補充視圖是可選的,它們的使用和佈局是由佈局對象定義的「,但我不知道如何爲整個集合視圖實現標題視圖。

我試圖通過僅對第一部分創建節標題視圖矩形來實現此目的,但它與tableHeader的不同。

在表格視圖中,如果我將內容偏移設置爲低於標題,內容大小會自動擴展,以便標題隱藏,儘管存在少量元素。

但在集合視圖中,修改內容偏移量只在存在足夠多的滾動元素時才能正常工作。

我試過當存在幾個元素來動態地擴展內容的大小,但它似乎沒有正常工作......

+0

可能重複[如何使UICollectionView中的補充​​視圖浮動爲部分標題在UITableView普通樣式中執行](http://support.microsoft.com/kb/13511733/how-to-make-supplementary-view-float-in -uicollectionview-as-section-headers-do-i) – staticVoidMan

+0

@staticVoidMan它不是重複的。請仔細閱讀問題。 – dzensik

回答

1

我這種使用自定義佈局和重新定位在每個滾動事件的標題來實現。與繼承UICollectionViewLayout開始,有噸在網絡上的教程,這是一個很好的一個:http://markpospesel.wordpress.com/2012/10/25/fixing-circlelayout/

那麼唯一的辦法就是始終返回YESshouldInvalidateLayoutForBoundsChange:,並在prepareLayout復位(即改變layoutAttributes'框架。)的標題基於集合視圖xOffset和yOffset。

使用NSIndexPath 0-0的補充視圖。

layoutAttributesForElementsInRect:將在每一幀被調用,所以如果你的collection視圖中有很多項目,你將需要緩存結果,所以它不會影響性能。除了那一個標題外,所有的屬性都應該是不變的。

來源:我花了1個月在這個特定的主題工作。

相關問題