1
我有兩個集合視圖作爲屬性的自定義視圖的屬性。所以我們給他們打電話self.collViewA
和self.collViewB
。在實現數據源方法時,我使用if語句以正確的信息配置正確的集合視圖。我只是使用isEqual:
來檢查每個數據源回調的collectionView
參數。這適用於除sizeForItemAtIndexPath
之外的每個數據源回調。CollectionView數據源方法調用不正確CollectionView參數
我實現如下:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
if ([collectionView isEqual:self.collViewA]) {
return CGSizeMake(25,25);
}
if ([collectionView isEqual:self.collViewB]) {
return CGSizeMake(50,50);
}
return CGSizeMake(10,10);
}
的問題似乎是,當兩個集合的觀點在我的設置方法實例化(初始化即是這些收集意見的超級自定義視圖之後調用)只有第二個if語句通過並且這兩個collection視圖都有50,50個大小的單元格。如果我刪除實例化第二個集合視圖的代碼,那麼比第一個如果WILL傳遞的代碼更精細,我將爲右側視圖獲取25,25個大小的單元格,但顯然沒有第二個集合視圖。
我沒有得到的是我如何在其他回調中使用與isEqual:
相同的條件邏輯並且沒有問題。
我發現一個黑客位的,但因爲清楚的CollectionView參數包括只是讓用戶可以區分不同的人的。 fwiw,我通過爲每個集合視圖使用兩個單獨的'UICollectionViewFlowLayout'來實現它。 –