我的工作UICollectionView,有一個問題,即方法是如何/時:何時調用UICollectionView @required方法?
- (UICollectionViewCell *)collectionView:(UICollectionView *)asker
cellForItemAtIndexPath:(NSIndexPath *)indexPath;
被調用。它所具有的參數是一個UICollectionView,它顯然是Controller的視圖中的CollectionView。我認爲的索引路徑只是已分配到CollectionView中的特定單元的索引。所以,我的問題是:
何時調用此方法?當我在UICollectionView中滾動時,它是否被調用,它需要填充項目?或者,當視圖被實例化時,它會調用它來填充它的CollectionView。
如果我在同一個視圖中有兩個UICollectionView,會發生什麼?我會用這個方法,只要致電:
- (UICollectionViewCell *)dequeueReusableCellWithReuseIdentifier:(NSString *)cell
forIndexPath:(NSIndexPath *)indexPath;
兩倍的方法和國家兩個不同的重用標識符的範圍內,並利用他們,我多麼希望?
也像標題說的那樣,何時需要調用@required方法?他們是否都以這種方式被召喚?
非常感謝您的幫助!
謝謝傑夫!當CollectionView首次出現在視圖中時,是否將所有方法作爲UICollectionViewDataSource協議的一部分運行?像方法的numberOfSectionInCollectionView和 - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section? – Jonathan
通常,是的。你可以放下一些日誌功能來自己測試。順序絕對是你期望的,例如numberOfSections後跟numberOfItemsInSection後跟cellForIndexPath等。我說「典型」是因爲單元格的渲染高度優化,只有在必要時纔會發生,如果你的視圖層次結構中有任何異常或者轉換它可能不會立即詢問單元格*,因爲它們無論如何都不可見。 – Jeff