Я разрабатываю приложение IOS 10.x с использованием UICollectionView и хотел бы изменить изображение определенных ячеек с регулярным интервалом.Изменение изображения ячейки UICollectionView с регулярным интервалом
В приведенном ниже коде показана текущая реализация. Несмотря на то, что он должен менять фоновое изображение ячейки каждые полторы секунды, он немедленно меняет изображения, не обращая внимания на интервал 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];
}
Я думаю, что '' UIImageView' animationImages' свойство может быть более подходящим для того, что вы пытаетесь делать. –
dispatch_async выполняет асинхронный код, поэтому ваша перезагрузка происходит до строки [NSThread sleepForTimeInterval: 0.5]. – iAviator
Лучше использовать 'NSTimer'. – iphonic