タイトルが示すように、UICollectionView
を呼び出した直後にセルを更新および表示しませんreloadData
。代わりに、30〜60秒後にコレクションビューが最終的に更新されるようです。私の設定は次のとおりです。
UICollectionView
ストーリーボードのビューコントローラーに追加され、ビューコントローラーのセットアップ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];
}
}];