2012-08-14 59 views

回答

0

我想你的意思是Nick Lockwood的AsyncImageView?这只是UIImageView的一个类别,所以当你有图像时,为什么不直接设置图像属性?

0

其实我得到了解决这个problem.All我所做的就是这个

NSURL *theURL = [NSURL fileURLWithPath:@"/Users/gaurav/Library/Application Support/iPhone Simulator/5.0/Applications/AC6E9B2E-DB25-4933-A338-755B134E1A61/Documents/Attachment290_294_1344928691.jpeg"]; 
    NSLog(@"local URl is::%@",theURL); 
    [self.asyncimageview loadImageFromURL:theURL]; 
0

或许下面会帮助你。

  1. 请从UIImageView的

    一个新的文件

  2. 继承

  3. 复制/粘贴下面的代码。

    进口

    导入 “ASIHTTPRequest.h”

    @interface AsynchronousImageView:{的UIImageView NSMutableData *数据; UIActivityIndi​​catorView * activityIndi​​cator; NSString * urlString; //关键字为图像缓存字典 ASIHTTPRequest * requestLocal; } @property(nonatomic,assign)UIActivityIndi​​catorView * activityIndi​​cator;

    • (void)loadImageFromURLString:(NSString *)theUrlString;
    • (void)loadImageFromNSURL:(NSURL *)theUrl;
    • (void)loadImageFromFile:(NSString *)filePath; - (void)showLoader; - (void)stopLoader; @end
  4. 然后在.m文件中粘贴以下内容。

    import“AsynchronousImageView.h”

    import“ASIDownloadCache。H”

    @implementation AsynchronousImageView @synthesize activityIndi​​cator;

    • (ID)initWithFrame:方法(的CGRect)帧 { 自我= [超级initWithFrame:方法帧]; 如果(个体){// 初始化代码 // [自setContentMode:UIViewContentModeScaleAspectFit]; } 返回自我; } - (无效)的dealloc { 如果(requestLocal){ [requestLocal setDelegate:nil]; } requestLocal = nil; activityIndi​​cator = nil; [super dealloc]; } /* //只有重写drawRect:如果您执行自定义绘图。 //一个空的实现在动画过程中会对性能产生不利影响。
    • (无效)的drawRect:(的CGRect)RECT { //绘制代码 } */ - 如果(无效)showLoader { (activityIndi​​cator ==无){ activityIndi​​cator = [[UIActivityIndi​​catorView的alloc] initWithActivityIndi​​catorStyle: UIActivityIndi​​catorViewStyleWhiteLarge]; [self addSubview:activityIndi​​cator]; activityIndi​​cator.frame = CGRectMake(self.bounds.size.width/2.0f - activityIndi​​cator.frame.size.width /2.0f,self.bounds.size.height/2.0f - activityIndi​​cator.frame.size.height /2.0f ,activityIndi​​cator.frame.size.width,activityIndi​​cator.frame.size.height); [activityIndi​​cator release]; } [activityIndi​​cator startAnimating]; } - (void)stopLoader if(activityIndi​​cator){activityIndi​​cator stopAnimating]; [activityIndi​​cator removeFromSuperview]; activityIndi​​cator = nil; } }
    • (void)loadImageFromFile:(NSString *)filePath {UIImage * img = [UIImage imageWithContentsOfFile:filePath]; [self setImage:img]; [self stopLoader]; }
    • (无效)loadImageFromURLString:(的NSString *)theUrlString { /如果(requestLocal){ [requestLocal setDelegate:无]; }/ requestLocal = nil; [self showLoader]; NSURL * url = [NSURL URLWithString:theUrlString]; requestLocal = [ASIHTTPRequest requestWithURL:url]; [requestLocal setDelegate:self]; [requestLocal setDidFailSelector:@selector(requestFailed)]; [requestLocal setDownloadCache:[ASIDownloadCache sharedCache]]; [requestLocal setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy]; [requestLocal startAsynchronous]; self.image = [UIImage imageNamed:@“playerDefault。PNG“]; }

    - (无效)loadImageFromNSURL:(NSURL *)theUrl { 如果(requestLocal){ [requestLocal setDelegate:无]; } requestLocal =无; requestLocal = [ ASIHTTPRequest requestWithURL:theUrl]; [requestLocal setDelegate:自]; [requestLocal setDidFailSelector:@selector(requestFailed)]; [requestLocal startAsynchronous]; }

    • (void)requestFinished:(ASIHTTPRequest *)请求 { requestLocal = nil; [self stopLoader]; UIImage * tempArt = [UIImage imageWithData:[request responseData]];如果(tempArt){self.image = tempArt; } [数据发布]; data = nil; } - (void)requestFailed:(ASIHTTPRequest *)request {requestLocal = nil; [self stopLoader]; [资料发布]; data = nil; } @end
  5. 然后在你的ViewComtroller .H进口AsycnhronousImageView类,并用此

    让你的形象是这样的IBOutlet中。

    IBOutlet AsycnhronousImageView * image;

  6. 变化厦门国际银行AsycnhronousImageView而不是UIImage的查看

  7. 调用类下面的方法

    • (无效)loadImageFromFile:(的NSString *)文件路径;
相关问题