簡體   English   中英

SDWebImage正在下載但不顯示圖像

[英]SDWebImage downloading but not show image

我正在使用UICollectionView

圖像來自FTP服務器。 這是我的代碼,用於下載和在按鈕上顯示圖像:

[tempp sd_setImageWithURL:[NSURL URLWithString:[[arrFilterData objectAtIndex:indexPath.row] valueForKey:@"ZoomPrdImg"]] //PrdImg //ZoomPrdImg
             placeholderImage:nil
                    completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
                        if (image) {
                            myCell.image.userInteractionEnabled = YES;
                            dispatch_async(dispatch_get_main_queue(), ^{
                                [myCell.image setImage:image forState:UIControlStateNormal];
                                [myCell setNeedsLayout];
                            });
                        }
                    }];

myCell.image是設置下載圖像的我的按鈕。 現在我不知道該圖像是否已成功下載,但按鈕上顯示了螺母。 UICollectionView有3000多個圖像,但是顯示了一些圖像和一些空白。

這怎么可能? 如何解決呢? 那里是什么問題?

編輯: tempp在viewDidLoad分配

- (void)viewDidLoad {
    tempp = [[UIImageView alloc] init];
}

更換

 [myCell.image setImage:tempp.image forState:UIControlStateNormal];
                            [myCell setNeedsLayout];

 [myCell.image setImage:image forState:UIControlStateNormal];
                            [myCell setNeedsLayout];

因為在完成處理程序中,您正在將圖像獲取到image對象中

我認為您的變量tempp被破壞,並取消了對圖像的請求。 將請求代碼更改為

[myButton sd_setImageWithURL:[NSURL URLWithString:@"MyURL"] forState:UIControlStateNormal completed:yourCompletitionBlock];

一切都應該沒事。

UPD

根據您對tempp變量的回答,我認為您每頁看到一個圖像,因為當您對許多單元格調用sd_setImage ...時,只有最后一個請求正在加載。 請求是異步的,如果您請求新圖像,則舊請求將被取消。

來自SDWebImage的代碼:

- (void)sd_setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder options:(SDWebImageOptions)options progress:(SDWebImageDownloaderProgressBlock)progressBlock completed:(SDWebImageCompletionBlock)completedBlock {
    [self sd_cancelCurrentImageLoad];
    objc_setAssociatedObject(self, &imageURLKey, url, OBJC_ASSOCIATION_RETAIN_NONATOMIC);

第一行取消舊請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM