我試圖從URL中顯示一些圖像到我的集合視圖。但是當我嘗試這樣做時,我的圖像顯示在集合視圖上,但它們隨機保持刷新和重新加載。另外當我嘗試滾動collectionView,它再次重新加載整個數據,我不想要。我只想將圖像顯示爲預覽給用戶。 下面是我的代碼,從URL獲取圖像並將其顯示在集合視圖中。如何停止在CollectionView中自動重新加載和刷新圖像iOS
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier" forIndexPath:indexPath];
__block NSString *filename;
for(NSDictionary *item in [jsonSD objectForKey:@"Data"]) {
for (int i=0; i<=[[item objectForKey:@"Count"]integerValue]; i++) {
filename=[NSString stringWithFormat:@"http://..URL../media/content/%@%@%d_1.png",_getstring,[item objectForKey:@"subcategory_id"],i];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSURL *url = [NSURL URLWithString:filename];
[self downloadImageWithURL:url completionBlock:^(BOOL succeeded, NSData *data) {
if (succeeded) {
iv.image = [[UIImage alloc] initWithData:data];
}
}];
});
}
}
return cell;
}
- (void)downloadImageWithURL:(NSURL *)url completionBlock:(void (^)(BOOL succeeded, NSData *data))completionBlock
{
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if (!error) {
completionBlock(YES, data);
} else {
completionBlock(NO, nil);
}
}];
}
這裏'iv'是我的imageView,其中我顯示的圖像收集視圖的單元格。 我試過搜索相關內容,但對上述問題我沒有任何想法。
請幫幫我。任何幫助表示讚賞。
你發現它是正確的。我不想在一個單元格中顯示所有圖像。我想單個單元格的單個圖像。 – ammy1
你能幫我嗎。 – ammy1
@ Greg-感謝您的建議。我會試試看。 – ammy1