日常收录

ios15保存网络图片至本地相册

2021-12-13  本文已影响0人  Johnson_9d92

ios15保存网络图片至本地相册

案例

主要源码:

//
//  ViewController.m
//  testSaveNetworkImage
//
//  Created by lujun on 2021/12/12.
//

#import "ViewController.h"
#define imageURL @"https://wx4.sinaimg.cn/mw690/c4994d69gy1gx4eakvm6vj22bk3404qs.jpg"

@interface ViewController ()
@property(nonatomic,weak)UIImageView *imageViewDemo;
@end
@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
       //耗时操作放在 多线程里面
        NSURL *url = [NSURL URLWithString:imageURL];
        NSData *data = [NSData dataWithContentsOfURL:url];
        UIImage *image = [UIImage imageWithData:data];
        dispatch_async(dispatch_get_main_queue(), ^{
            //回调UI页面的时候,回到主线程里面
            self.imageViewDemo.image = image;
         });
    });
}
-(void)savePhoto{
//    NSLog(@"%s",__func__);
    //对图片进行存储
    UIImageWriteToSavedPhotosAlbum(self.imageViewDemo.image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
}
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{
//    NSLog(@"%@",error);
    //对图片存储完,进行回调,提示用户,图片是否保存成功
    UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"保存用户提示" message:@"" preferredStyle:UIAlertControllerStyleAlert];
    if(error){
        //失败
        NSLog(@"%@",@"失败");
        alertVC.message = @"保存失败";
    }else{
        //成功
        NSLog(@"%@",@"成功");
        alertVC.message = @"保存成功";
        
    }
    [self presentViewController:alertVC animated:YES completion:nil];
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1*NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [self dismissViewControllerAnimated:alertVC completion:nil];
        [self.imageViewDemo removeFromSuperview];
    });
}
#pragma 懒加载
- (UIImageView *)imageViewDemo{
    if(!_imageViewDemo){
        UIImageView *iv = [[UIImageView alloc] initWithFrame:CGRectMake(0, 50, [UIScreen mainScreen].bounds.size.width, 250)];
        [self.view addSubview:iv];
        //给UIImageView添加一个手势
        UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init];
        [iv addGestureRecognizer:tap];
        iv.contentMode = UIViewContentModeScaleAspectFill;
        //允许用户交互
        [iv setUserInteractionEnabled:YES];
        [tap addTarget:self action:@selector(savePhoto)];
        self.imageViewDemo = iv;
    }
    return _imageViewDemo;
}
@end
上一篇下一篇

猜你喜欢

热点阅读