我的情景就是这样。在应用程序开始时,将从服务器和服务器下载图像列表。一旦下载,所有图像将被转换为静态图像,并且将在应用程序中随处使用那些静态图像。我认为在android中这个东西可以用BITMAP来实现。 (不确认)。
目前我正在使用SDWEBIMAGE库来下载和缓存图片。但我不想再使用这个库了。我只想下载所有图像一次,然后我想在下面添加代码片段以显示下载的图像。
[ImageView setImage:[UIImage imageNamed:@"DownloadedImageName"]];
有什么方法可以在ios中完成这项工作吗?
答案 0 :(得分:1)
您必须下载每张图片并将其保存到" Documents"目录,然后在需要时使用它。
要将图像保存到文档目录中,请使用以下代码:
- (IBAction)saveImage:(UIImage*)img {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
NSData *imageData = UIImagePNGRepresentation(img);
[imageData writeToFile:savedImagePath atomically:NO];
}
要获取并在imageview上显示图像,请使用以下代码:
- (UIImage*)getImage
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:@"savedImage.png"];
UIImage *img = [UIImage imageWithContentsOfFile:getImagePath];
return img;
}
答案 1 :(得分:0)
[UIImage imageNamed:]
方法仅用于获取应用包中已存在的图片。因此,如果您有从Internet下载的动态内容,则无法使用此方法。而是创建自己的方法来从沙箱文档文件夹加载图像。