imgBiteSpot.clipsToBounds=YES;
NSData *imageData = [[[NSData alloc]init]autorelease];
imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:ObjBitSpot.StrImagePath]];
if(imageData==0)
{
imgBiteSpot.image=[UIImage imageNamed:@"img-not-found.gif"];
}
else {
UIImage *imgs = [[UIImage alloc] initWithData:imageData];
UIGraphicsBeginImageContext(CGSizeMake(88,88));
[imgs drawInRect:CGRectMake(0.0, 0.0, 88.0, 88.0)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
imgBiteSpot.image=newImage;
[imgs release];
}
<小时/> 我已将图片加载到
imgBiteSpot
。
图像从Web服务加载。问题是需要花费太多时间(35秒到1分钟)。
如果我删除图片 - &gt;代码/负载,反应时间仅为0.2秒。
减少图像加载过程的时间是什么?
提前感谢您的帮助。
答案 0 :(得分:3)
你正在使用NSData的方法dataWithContentsOfURL:
,它从服务器同步加载数据,因此阻塞线程直到收到图像。
您应该做的是将空白或“加载”图像加载到UIImage中,然后使用NSURLConnection异步下载图像并在完成后显示它。请参阅NSURLConnection参考和URL Loading System文档。
答案 1 :(得分:1)
我编写了RemoteImage类来异步加载网络上的图像。它还可以在必要时释放内存。请参阅此帖子:http://www.dimzzy.com/blog/2009/11/remote-image-for-iphone/