0

バンドル リソースには約 80 個の画像があります。カテゴリ クラスの一部として、イメージ ビューにロードする必要があるイメージの名前を保持する Image Name というプロパティがあります。[UIImage imageNamed:Category.imageName] を使用しています。これにより、カスタム テーブル セルに正しい画像が読み込まれますが、コレクション ビュー セルには読み込まれません。

テーブル ビュー - インデックス パスの行のセル

NSLog(@"Index = %d",indexPath.row);
CustomTableViewCell *cell = (CustomTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"cell"];
if(cell == nil){
    NSArray *nib = [[NSBundle mainBundle]loadNibNamed:@"CustomTableViewCell" owner:self options:nil];
    cell = [nib objectAtIndex:0];
}
Category *current = [self.editCategories objectAtIndex:indexPath.row];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
[[cell itemTitle]setText:current.title];
cell.backgroundColor = current.categoryColor;
cell.itemImage.image = [UIImage imageNamed:current.imageName];

return cell;

コレクション ビュー - インデックス パスの行のセル …

NSArray *catagoriesPulled = [[CategoryStore categoryStore]allCatagories];
Category *categoryRequested = [catagoriesPulled objectAtIndex:[indexPath row]];
CustomCollectionViewCell *cell = (CustomCollectionViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"CustomCollectionViewCell" forIndexPath:indexPath];
[cell setController:self];
cell.categoryImageView.image = nil;
cell.categoryTitle.numberOfLines = 1;
cell.categoryTitle.adjustsFontSizeToFitWidth = YES;
[[cell categoryTitle]setText:categoryRequested.title];
cell.categoryImageView.image = [UIImage imageNamed:categoryRequested.imageName];
NSLog(@"%@,%@",categoryRequested.title, categoryRequested.imageName);
cell.backgroundColor = categoryRequested.categoryColor;
return cell;

シミュレーターでアプリケーションを実行すると完全に動作しますが、実際のデバイスでは、コレクション ビュー セルのイメージ ビューは、含まれている 80 からランダムなイメージを読み込みますが、テーブル ビューは正しいイメージを読み込みます。

どんな助けでも役に立ちます。ありがとうございました。

4

2 に答える 2

0

次の場合、画像の正しい名前があります NSLog(@"%@,%@",categoryRequested.title, categoryRequested.imageName);か?

CustomCollectionViewwithに保持サイクルがないことを確認することをお勧めします[cell setController:]。これにより、通常、いくつかの奇妙なことが発生します(特に、メモリが少ないデバイスでは、私が発見しました)。これらのセルの余分なインスタンスとそのサブビューが保持されている可能性があり、これが間違った画像が表示される原因となっている可能性があります。

于 2013-10-07T21:43:00.610 に答える