我有一个代码来显示来自远程网址的图片。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSData *imageData = nil;
imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:image]];
if (imageData){
dispatch_async(dispatch_get_main_queue(), ^{
// UIKit, which includes UIImage warns about not being thread safe
// So we switch to main thread to instantiate image
UIImage *image1 = [UIImage imageWithData:imageData];
self.imageLabel.image = image1;
});
}
});
但下载图片需要2秒钟。我试图将动画加载图像放到UIImageView上,但没有用。如何实现2秒的加载图像?
答案 0 :(得分:2)
通常iOS中没有内置方法来提供占位符图像。您可以使用名为SDWebImage.framework
的框架完成此任务。在我的一个项目中,我必须显示占位符图像,而主要图像是从服务器加载的。我使用相同的框架并使用UICollectionView
显示图像,我使用的代码是:
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
CollectionCell *Cell = [collectionView
dequeueReusableCellWithReuseIdentifier:@"MyCell"
forIndexPath:indexPath];
[Cell.imageview setImageWithURL:url placeholderImage:[UIImage imageNamed:@"image.png"]];
return myCell;
}