更改collectionView中的图像以匹配Array中保存的已购买项目

时间:2015-06-26 16:48:25

标签: ios arrays collectionview

如果每个数字都等于UICollectionView indexPath 单元格的图像> {<1}}的行。

我知道我可以使用:

collectionView

表示单个值,但如何从数组中执行此操作?

顺便说一句。它是一个动态if [indexPath row] == 5 { self.myImage = [UIImage imageNamed:@"120-red.png"]; aCell.imageView.image = self.myImage; } ,由购买的产品创建并存储在NSMutableArray中。非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

您可以将索引和图像名称保存在字典中,其键为NSNumbers。

NSDictionary* dict = @{@(5):@"120-red.png", @(6):@"130-blue.png"};

然后在你的dataSource方法

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
              cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    NSString* str = [dict objectForKey:@(indexPath.row)];
    if (str) { //str will be nil if the key isn't in the dictionary
        image = [UIImage imageNamed: str];
    }
    else {
        //the key wasn't in your dictionary. Do whatever you did before to keep this cell the same
    }
}

更改数据时需要重新加载。使用:

- (void)reloadItemsAtIndexPaths:(NSArray *)indexPaths

仅重新加载您更改的内容,

OR

- (void)reloadData

重新加载整个集合