博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS--使用MWPhotoBrowser进行图片保存
阅读量:6412 次
发布时间:2019-06-23

本文共 3037 字,大约阅读时间需要 10 分钟。

hot3.png

多的话不说,直接上代码:

遵守MWPhotoBrowserDelegate协议,

NSMutableArray *_tempImgArr;//存储图片的数据源

UIImage *_saveImg; //将要保存的图片

//点击图片 放大-(void)imgClick:(NSInteger)index{    //创建MWPhotoBrowser ,要使用initWithDelegate方法,要遵循MWPhotoBrowserDelegate协议    MWPhotoBrowser *browser = [[MWPhotoBrowser alloc]initWithDelegate:self];    //设置当前要显示的图片    [browser setCurrentPhotoIndex:index];    //显示导航条(根据自己需求)    self.navigationController.navigationBar.hidden = NO;    browser.navigationController.navigationBar.hidden = NO;    //push到MWPhotoBrowser    [self.navigationController pushViewController:browser animated:YES];}//图片的个数- (NSUInteger)numberOfPhotosInPhotoBrowser:(MWPhotoBrowser *)photoBrowser{        return _tempImgArr.count;}//通过下标获取图片- (id 
)photoBrowser:(MWPhotoBrowser *)photoBrowser photoAtIndex:(NSUInteger)index{ //创建图片模型 MWPhoto *ph = [MWPhoto photoWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@",_tempImgArr[index][@"original"]]]];//图片添加长按手势 UILongPressGestureRecognizer *lpGes = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPressAction:)]; [photoBrowser.view addGestureRecognizer:lpGes]; return ph; }//获取当前点击的图片-(void)photoBrowser:(MWPhotoBrowser *)photoBrowser didDisplayPhotoAtIndex:(NSUInteger)index{ _saveImg = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@",_tempImgArr[index][@"original"]]]]];}//长按手势-(void)longPressAction:(UILongPressGestureRecognizer *)ges{ // MWPhotoBrowser *photoBrowser = (MWPhotoBrowser*)[Utils getSuperControllerWith:ges.view]; //只在begin执行一次 if (ges.state == UIGestureRecognizerStateBegan) { NSLog(@"long pressTap state :begin"); UIAlertController *alertC = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet]; UIAlertAction *action1 = [UIAlertAction actionWithTitle:@"保存图片到手机" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { UIImageWriteToSavedPhotosAlbum(_saveImg, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL); }]; UIAlertAction *action2 = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:nil]; [alertC addAction:action1]; [alertC addAction:action2]; [self.navigationController presentViewController:alertC animated:YES completion:nil]; } }// 保存图片后到相册后,回调的相关方法,查看是否保存成功- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo { AppDelegate *app = (AppDelegate*)[[UIApplication sharedApplication] delegate]; MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:app.window animated:YES]; //显示文字 hud.mode = MBProgressHUDModeText; if (error == nil){ hud.labelText = @"已保存到手机相册!"; } else { hud.labelText = @"保存失败!"; } // 隐藏时候从父控件中移除 hud.removeFromSuperViewOnHide = YES; [hud hide:YES afterDelay:1.5];}

如图:

  

 

转载于:https://my.oschina.net/huangyn/blog/1547761

你可能感兴趣的文章
Redis 哨兵Sentinel 高可用(学习笔记九)
查看>>
mybatis关于Criteria的用法小坑
查看>>
报考排队1小时?平安科技说只需90秒
查看>>
T-SQL学习中--窗口函数
查看>>
浅谈web开发
查看>>
Go 语言从新手到大神:每个人都会踩的五十个坑 (13-22)
查看>>
Android——Matrix变换矩阵的探索(1)
查看>>
04.构造函数 析构函数 拷贝函数
查看>>
到目前为止,生活教会给你最重要的一件事是什么?
查看>>
重拾Java(2)-运算符
查看>>
Linux系统诊断小技巧(15):启停问题之如何修复文件系统损坏
查看>>
Go语言基础语法-4
查看>>
使用Spring Boot 发送邮件(持续更新...)
查看>>
CentOS 7 安装Node
查看>>
初探性能优化--2个月到4小时的性能提升!
查看>>
Java NIO(七)Selector
查看>>
Hive操作大全(原创)
查看>>
区块链开发公司谈供应链金融的优势
查看>>
Android实际开发中实用的第三方(开源)框架
查看>>
Why I quit from Qt5 Quick?
查看>>