ここで皆さんに挑戦です...
ウィッチが正しくロードされているUICollectionView
内部があります。UIViewController
また、カスタムUICollectionViewCell
クラス ウィッチに が含まれていUIButton
ます。
カスタム のボタンに 1 つの背景画像を割り当てるためにNSArray
、いくつかのオブジェクトを使用してサーバーからを取得します。UIImage
UICollectionViewCell
私の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
を の 1 つのセクションだけに配置する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;
}