這裏是爲大家的挑戰......UICollectionView需要很長的時間來刷新數據
我有一個UICollectionView
我UIViewController
女巫內部正確加載。 我也有一個自定義UICollectionViewCell
職業女巫包含一個UIButton
。
我爲了一個背景圖像分配給我的自定義UICollectionViewCell
的按鈕來檢索從我的一些UIImage
對象服務器NSArray
。
這是我的cellForItemAtIndexPath
函數的代碼:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;
{
UserPhotoCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"userPhotoCell" forIndexPath:indexPath];
if (indexPath.section == 0) {
[[cell imageButton] setBackgroundImage:[userPublicImages objectAtIndex:indexPath.row] forState:UIControlStateNormal];
} else {
[[cell imageButton] setBackgroundImage:[userPrivateImages objectAtIndex:indexPath.row] forState:UIControlStateNormal];
}
return cell;
}
正如你所看到的是很簡單的。
來了奇怪的行爲:如果我把我所有的自定義UICollectionViewCell
在UICollectionView
只是一個部分,其性能是好的...
什麼想法?
一些額外的信息:UICollectionView
有標題。自定義標題。此時此刻UIView
就是UILabel
。
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
UICollectionReusableView *reusableView = nil;
if (kind == UICollectionElementKindSectionHeader) {
UICollectionReusableView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"collectionHeader" forIndexPath:indexPath];
UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, [headerView frame].size.width, 40.0f)];
if (indexPath.section == 0) {
[titleLabel setText:NSLocalizedStringFromTable (@"collectionTitle_publicPhotos", [[NSLocale preferredLanguages] objectAtIndex:0] , @"")];
} else {
[titleLabel setText:NSLocalizedStringFromTable (@"collectionTitle_privatePhotos", [[NSLocale preferredLanguages] objectAtIndex:0] , @"")];
}
[headerView addSubview:titleLabel];
reusableView = headerView;
}
return reusableView;
}
您應該使用儀器和時間分析器來確定時間花在哪裏。 – 2013-05-07 12:59:16
嗯,時間事件探查器說這個問題在這裏:UserPhotoCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:@「userPhotoCell」forIndexPath:indexPath]; ... reusableCell ...也許我應該包括「if(cell == nil)」 ? – 2013-05-07 13:11:23