1

建立一個非常靈活/動態的「頭」的最好辦法,我需要建立一個UICollectionViewUICollectionViewFlowLayout非常有活力的「頭」(爲了清楚起見,我把它叫做「視圖中的」以避免將它與真正的集合視圖標題混合),但我不知道什麼可以是最好的方式來做到這一點:collectionViewCell,標題補充視圖是什麼在UICollectionView

我通過靈活的意思,子彈點被責令按重要性遞減:

  1. 查看A將包含需要檢測手勢按鈕和子視圖,所以我必須能夠檢測到對視圖A的子視圖行動。
  2. 我需要再裝上集合視圖數據,而無需重新加載視圖A.
  3. 我需要能夠每當我想(在集合視圖delegateviewDidScroll用於更新視圖中的子視圖的佈局例如,更新根據contentOffset更改)。
  4. 如果可能,我希望能夠動態更改視圖A的框架(我的意思是不必使佈局無效)。我想讓A看起來粘在頂部,並在滾動時縮小直到它消失。看看最近推出的「祕密」應用程序,看看我的意思(爲他們完成UITableView)。雖然我可以通過改變子視圖的佈局來改變框架和作弊(見第3點),以便給出粘滯標題的感覺,但我可以滾動。

您認爲最好的組件是做什麼的?我可以使用UICollectionViewCell,標題或補充視圖嗎?如果是這樣的話?如果不是的話,你是否想到了一種替代方法,我可以使用它來實現相同的行爲(透明標題和視圖A在集合視圖後面?將視圖添加到視圖層次結構中的其他位置?)。

感謝您的幫助!

回答

1

看看UICollectionReusableView類。

您可以在的CollectionView爲 「SupplementaryView」 註冊您的筆尖(registerNib:forSupplementaryViewOfKind:withReuseIdentifier :,使用UICollectionElementKindSectionHeader樣的看法)

,那麼你必須要實現的CollectionView:viewForSupplementaryElementOfKind:atIndexPath:方法在你的委託並確保爲UICollectionElementKindSectionHeader類返回一些內容。

最後你必須實現你的UICollectionViewDelegateFlowLayout的collectionView:layout:referenceSizeForHeaderInSection:方法來設置你的頭的大小。

讓我知道它是否有幫助。

+0

謝謝thibaut。我很確定在滾動上動態調整框架(第4項)是不可能的,但是我可以「欺騙」並使子視圖下降,從而給出縮小標題的感覺。 –

+0

最讓我擔心的是雖然是第2點:我沒有看到如何重新加載數據部分,而無需重新加載標題補充視圖。我可以獨立重新加載一個部分,這樣我就可以爲我的頭部插入另一個部分,並且在這個新部分中,我現在想知道在所有聲明的組件之間最靈活的是 –

+0

也許reloadItemsAtIndexPaths與頭部indexPath? –