问题描述
我在尝试使用异步 ASINetworkQueue
来加载表格单元格的图像文件。我只是想不通出来,似乎无法找到一个很好的简单的例子。
I'm trying to load some images in table cells asynchronously using ASINetworkQueue
. I just can't figure it out and can't seem to find a good SIMPLE example.
我能找到的最好的是这一点,但它只是完全矫枉过正,有点过于复杂,对我来说:
的
The best I can find is this, but its just totally overkill and a little too complicated for me:http://kosmaczewski.net/2009/03/08/asynchronous-loading-of-images-in-a-uitableview/
没有任何人有任何提示/解决方案/ code为与 ASIHTT prequest
图书馆这样做呢?
Does anyone else have any tips/solutions/code for doing this with the ASIHTTPRequest
library?
推荐答案
下面是UIImageView的,我用的派生类,也许这会帮助你。 (其实我这简化了从我用公平一点,但那是你问什么!)
Here's a class derived from UIImageView which I use, perhaps this will help you. (Actually I've simplified this a fair bit from what I use, but that was what you asked for!)
头文件,UIHTTPImageView.h:
Header file, UIHTTPImageView.h:
#import "ASIHTTPRequest.h"
@interface UIHTTPImageView : UIImageView {
ASIHTTPRequest *request;
}
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder;
@end
和UIHTTPImageView.m:
and UIHTTPImageView.m:
#import "UIHTTPImageView.h"
@implementation UIHTTPImageView
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder {
[request setDelegate:nil];
[request cancel];
[request release];
request = [[ASIHTTPRequest requestWithURL:url] retain];
[request setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy];
if (placeholder)
self.image = placeholder;
[request setDelegate:self];
[request startAsynchronous];
}
- (void)dealloc {
[request setDelegate:nil];
[request cancel];
[request release];
[super dealloc];
}
- (void)requestFinished:(ASIHTTPRequest *)req
{
if (request.responseStatusCode != 200)
return;
self.image = [UIImage imageWithData:request.responseData];
}
@end
这篇关于怎么样?用的UITableViewCell通过的UIImageView ASINetworkQueue异步加载的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!