Как следует из названия, мой UICollectionView
не обновляет и не отображает ячейки сразу после вызова reloadData
. Вместо этого он, похоже, в конечном итоге обновляет мой просмотр коллекции через 30-60 секунд. Моя настройка такова:
UICollectionView
добавлен в контроллер просмотра в Storyboard с настройками delegate
и dataSource
для контроллера вида и стандартной настройки выхода
numberOfSectionsInRow
и cellForItemAtIndexPath
оба реализованы и ссылаются на прототипированную ячейку и imageView
внутри нее
Вот код, который идет в Twitter, получает временную шкалу, присваивает ее переменной, перезагружает табличное представление с помощью твитов, а затем просматривает твиты, чтобы найти фотографии и перезагружает представление коллекции этими элементами.
Даже если я прокомментирую код для отображения изображения, он все равно ничего не меняет.
SLRequest *timelineRequest = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL:timelineURL parameters:timelineParams];
[timelineRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
if(responseData) {
JSONDecoder *decoder = [[JSONDecoder alloc] init];
NSArray *timeline = [decoder objectWithData:responseData];
[self setTwitterTableData:timeline];
for(NSDictionary *tweet in [self twitterTableData]) {
if(![tweet valueForKeyPath:@"entities.media"]) { continue; }
for(NSDictionary *photo in [[tweet objectForKey:@"entities"] objectForKey:@"media"]) {
[[self photoStreamArray] addObject:[NSDictionary dictionaryWithObjectsAndKeys:
[photo objectForKey:@"media_url"], @"url",
[NSValue valueWithCGSize:CGSizeMake([[photo valueForKeyPath:@"sizes.large.w"] floatValue], [[photo valueForKeyPath:@"sizes.large.h"] floatValue])], @"size"
, nil]];
}
}
[[self photoStreamCollectionView] reloadData];
}
}];