【发布时间】:2013-03-04 06:13:03
【问题描述】:
我有四个包含图片的网址... 我正在下载这些图像并将它们放入文档文件夹..
这是我的代码..
-(void)viewDidLoad
{
NSMutableArray *myUrlsArray=[[NSMutableArray alloc]init];
[myUrlsArray addObject:@"http://blogs.sfweekly.com/thesnitch/steve_jobs3.jpg"];
[myUrlsArray addObject:@"http://www.droid-life.com/wp-content/uploads/2012/12/Steve-Jobs-Apple.jpg"];
[myUrlsArray addObject:@"http://2.bp.blogspot.com/-T6nbl0rQoME/To0X5FccuCI/AAAAAAAAEZQ/ipUU7JfEzTs/s1600/steve-jobs-in-time-magazine-front-cover.png"];
[myUrlsArray addObject:@"http://images.businessweek.com/ss/08/09/0929_most_influential/image/steve_jobs.jpg"];
[myUrlsArray addObject:@"http://cdn.ndtv.com/tech/gadget/image/steve-jobs-face.jpg"];
for (int i=0; i<myUrlsArray.count; i++)
{
[self downloadImageFromURL:[myUrlsArray objectAtIndex:i] withName:[NSString stringWithFormat:@"MyImage%i.jpeg",i]];
}
}
#pragma mark- downloading File
-(void)downloadImageFromURL:(NSString *)myURLString withName:(NSString *)fileName
{
UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:myURLString]]];
NSLog(@"%f,%f",image.size.width,image.size.height);
// Let's save the file into Document folder.**
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];
NSString *jpegPath = [NSString stringWithFormat:@"%@/%@",documentsPath,fileName];// this path if you want save reference path in sqlite
NSData *data2 = [NSData dataWithData:UIImageJPEGRepresentation(image, 1.0f)];//1.0f = 100% quality
[data2 writeToFile:jpegPath atomically:YES];
}
现在...我需要准确显示上述下载进度的 UIProgressView。
我怎样才能实现这个功能...
谁能提供一些指导方针来实现这一目标..
提前致谢...
【问题讨论】:
-
对于这个东西,首先你必须在完全下载之前知道图像的总大小,然后你必须计算每次下载的数据以及该数据占总大小的百分比,然后只有我认为这是可能的。
-
顺便说一句,你真的不想下载
NSData,创建一个UIImage,然后使用UIImageJPEGRepresentation重新提取NSData。 JPG 是有损的,因此您要么会失去质量,要么如果您使用 1.0 来提高质量,那么文件无疑会比原始文件大。如果您自己执行此操作,请确保将原始NSData检索到它自己的变量中,并且当您要保存它时保存它,而不是UIImageJPEGRepresentation的结果。 -
这是一个 hack,所以我不会列出作为答案。但我在这种情况下所做的是构建自己的进度条并在每个图像完成时将其更新 25%。实际上,为了让它看起来不只是停留在 75% 然后消失,我让它喜欢 90% 然后在删除它之前做一些其他的快速任务。
-
谢谢@sanjitshaw...@Rob....@badweasel..
标签: iphone ios objective-c xcode ipad