我们在做一些有图片的项目中,经常需要添加用户长按保存图片的功能,本人自己整理了一些方法如下:
// 长按保存图片
// 添加手势
UILongPressGestureRecognizer *longP = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longP)];
imageView.userInteractionEnabled = YES; // 打开交互
[imageView addGestureRecognizer:longP];
- (void)longP{
UIAlertController *con = [UIAlertController alertControllerWithTitle:@"提示" message:@"保存图片" preferredStyle:1];
UIAlertAction *action = [UIAlertAction actionWithTitle:@"确定" style:0 handler:^(UIAlertAction * _Nonnull action) {
UIImageWriteToSavedPhotosAlbum(view1.image,self,@selector(imageSavedToPhotosAlbum:didFinishSavingWithError:contextInfo:),NULL); // 写入相册
}];
// 此处的image1为对应image的imageView 请自行修改
UIAlertAction *action1 = [UIAlertAction actionWithTitle:@"取消" style:0 handler:nil];
[con addAction:action];
[con addAction:action1];
[self presentViewController:con animated:YES completion:nil];
}
// 完善回调
-(void)imageSavedToPhotosAlbum:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
if(!error){
UIAlertController *con = [UIAlertController alertControllerWithTitle:@"提示" message:@"图片保存成功!" preferredStyle:1];
UIAlertAction *action = [UIAlertAction actionWithTitle:@"确定" style:1 handler:nil];
[con addAction:action];
[self presentViewController:con animated:YES completion:nil];
}else{
NSLog(@"savefailed");
}
}