如何更改所有UICollectionView单元格的按钮图像?

时间:2017-01-12 13:14:58

标签: ios objective-c uicollectionview

我正在使用UICollectionView来显示一些数据。我在每个单元格上都有一个按钮。现在点击某个特定索引的按钮(例如:9)我想更改所有单元格的按钮图像。有人可以建议怎么做吗?

2 个答案:

答案 0 :(得分:1)

我会遍历所有可见的单元格并更改图像。例如:

for (CustomCellClass *cell in collectionView.visibleCells) {
    [cell.button setImage:[UIImage imageNamed:@"new image"] forState:UIControlStateNormal];
}

对于屏幕外单元格,当用户滚动到这些单元格时,我会确保在collectionView:cellForItemAtIndexPath:中设置新图像。

答案 1 :(得分:0)

我们可以像这样在cellForItemAtIndexPath添加逻辑。

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {

     UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:reuseIdentifier forIndexPath:indexPath];

     if (self.buttonClicked) { // boolean check 
         [cell.newButton setImage:buttonClickedImage]; 
     }else {
         [cell.newButton setImage:buttonNotClickedImage];
     }

     return cell;
}

单击按钮后,您还可以重新加载所有可见单元格。

[self.collectionView reloadItemsAtIndexPaths:self.collectionView.indexPathsForVisibleItems];

随意建议编辑以使这个答案更好:)