定期更改UICollectionView单元格图像

时间:2017-02-15 09:22:16

标签: ios xcode uicollectionview uicollectionviewcell

我正在使用UICollectionView开发一个IOS 10.x应用程序,并希望定期更改特定单元格的图像。

下面的代码显示了当前的实现。即使它应该每半秒改变一次细胞背景图像,它会立即改变图像,而不考虑NSThread SleepAt间隔为0.5秒。

我怀疑主线程处理或ReloadItem方法,但尚未得出明确的结论。非常欢迎任何见解!谢谢。

NSNumber* originalCardSelected;
int position;

for (int i = 0; i < [opponentOriginalCardArray count]; i++) {

  originalCardSelected = [opponentOriginalCardArray objectAtIndex:i];
  position = [self convertLevelDataPositionToCellViewPosition:[originalCardSelected intValue]];

  NSMutableArray *tmpBackgroundAssets = [self getNewAssetBackgroundBasedOnBackgroundType:playbackBackground Index:position];
    self.backgroundAssets = tmpBackgroundAssets;

    dispatch_async(dispatch_get_main_queue(), ^{



        [collectionViewRoot reloadItemsAtIndexPaths:[collectionViewRoot indexPathsForVisibleItems]];
    });
    [NSThread sleepForTimeInterval:0.5];


}

1 个答案:

答案 0 :(得分:0)

您应该使用performBatchUpdates(_:completion:)方法并在其中添加for循环。

请记住不要在块内保留强引用,以避免保留周期。

修改

并在完成块中,您可以检查是否已完成并添加NSThread方法