我已经加载了一些图片请告诉我如何使用异步加载图像
答案 0 :(得分:2)
假设您想要在 UIImageView 中显示下载的图像,请使用EGOImageView,这非常简单(只需使用占位符图像初始化它并设置要下载的图像的URL)。
http://developers.enormego.com/view/what_if_images_on_the_iphone_were_as_easy_as_html
如果您不想显示图像,但只想进行异步下载,请使用EGOImageLoader。
只需确保您的班级符合 EGOImageLoaderObserver 协议并实施2个委托方法即可...
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
{
imageLoader = [EGOImageLoader sharedImageLoader]; // ivar, so we can remove the observer in the dealloc ...
}
return self;
}
- (void)dealloc
{
[imageLoader removeObserver:self];
[super dealloc];
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *urlString = @"http://www.wimwauters.be/wp-content/uploads/2011/01/steve-jobs.jpg";
NSURL *url = [NSURL URLWithString:urlString];
[imageLoader loadImageForURL:url observer:self];
}
#pragma mark - EGOImageLoaderObserver
- (void)imageLoaderDidLoad:(NSNotification*)notification
{
NSDictionary *userInfo = [notification userInfo];
UIImage *theImage = [userInfo objectForKey:@"image"];
// do something with the image, e.g. display it in an ImageView ...
}
- (void)imageLoaderDidFailToLoad:(NSNotification*)notification
{
NSDictionary *userInfo = [notification userInfo];
NSError *error = [userInfo objectForKey:@"error"];
if (error)
{
// handle the error
}
}
答案 1 :(得分:1)
您是在谈论在后台下载图片吗?
Jeff LaMarche的这个教程是一个很好的解决方案 - http://iphonedevelopment.blogspot.com/2010/05/downloading-images-for-table-without.html