我在我的UIViewController
中有兩個UICollectionViews
。UICollectionView CellForItemAtIndexPath沒有被調用
假設它們是A和B,A和B位於UIViewcontroller中nib文件中的相同位置,它們具有完全相同的大小。
現在我在ViewDidLoad
設置
A.delegate = self;
A.dataSource = self;
B.delegate = self;
B.dataSource = self;
[A registerNib:nib forCellWithReuseIdentifier:CELL_A];
[B registerNib:nib forCellWithReuseIdentifier:CELL_B];
然後在CellForItemAtIndexPath
,
我用switch語句來顯示不同的細胞。
然後我使用段控制來控制在我選擇的段上顯示正確的UICollectionViewcontroller
。
在段控制值更改代碼。我使用:正確顯示
- (IBAction)sectionSelected:(id)sender {
if (choosing A) {
B.hidden = YES;
A.hidden = NO;
A.backgroundColor = [UIColor blackColor];
[self getAData];
[A reloadData];
}
else if (choosing B) {
A.hidden = YES;
B.hidden = NO;
B.backgroundColor = [UIColor orangeColor];
[self getBData];
[B reloadData];
}
}
阿當我設置默認選擇的段爲A.但是當我切換到B,I可以看到B是負載,但數據不加載到B,所以我不能看到除了橙色背景之外的任何東西。我把NSLog放入CellForItemAtIndexPath
,發現在reloadData
之後沒有調用該方法。
下面是一些記錄我得到A.collectionViewLayout.collectionViewContentSize;
和B.collectionViewLayout.collectionViewContentSize;
content size of B = 768.000000, 24.000000
content size of A = 768.000000, 880.000000
當我設置默認選定段B,B正確顯示。我切換回A,這也正確顯示。但是,當我再次切換回B時,它會顯示一個空的橙色屏幕。任何想法我的代碼出了什麼問題?
不幸的是,這並不能幫助我。運行期間,我在 - [UICollectionView _endItemAnimations]中出現斷言失敗。 – newguy