700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > iOS上传头像 相册权限 相册权限 拍照上传 相册选择图片 拍照页面语言设置 保存到相册...

iOS上传头像 相册权限 相册权限 拍照上传 相册选择图片 拍照页面语言设置 保存到相册...

时间:2023-10-26 20:58:56

相关推荐

iOS上传头像  相册权限 相册权限 拍照上传 相册选择图片 拍照页面语言设置 保存到相册...

独角兽企业重金招聘Python工程师标准>>>

1. 权限

在打开相机拍照或者打开相册选择图片之前, 有必要先判断先是否有权限, 如果没有权限应该给个提示, 让用户自己去设置权限.

判断是否有相机权限:

//首先需要导入头文件: #import <AVFoundation/AVFoundation.h>// 判断是够有全向访问相机AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo];if (authStatus == AVAuthorizationStatusRestricted || authStatus ==AVAuthorizationStatusDenied){//无权限NSLog(@"没有访问相机权限");return;}

判断是否有相册权限:

网上找了很多, 都是说用另一个类来判断的, 叫什么名字忘了, 但是是不能用的, 正确姿势是使用PHPhotoLibrary这个类.

//首先需要导入头文件: #import <Photos/PHPhotoLibrary.h>// 判断是否有访问相册的权限PHAuthorizationStatus author = [PHPhotoLibrary authorizationStatus];if (author == PHAuthorizationStatusRestricted || author ==PHAuthorizationStatusDenied){//无权限NSLog(@"没有访问相册的权限");return;}

2. 拍照或者使用相册照片

从相机或者相册选择照片需要用到UIImagePickerController类.

从相机选择照片:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];imagePicker.delegate = self;imagePicker.allowsEditing = YES;imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;[self presentViewController:imagePicker animated:YES completion:nil];

从相册选择照片:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];imagePicker.delegate = self;imagePicker.allowsEditing = YES;imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;[self presentViewController:imagePicker animated:YES completion:nil];

3. 保存照片到相册

拍照方式选择照片时候, 一般需要将照片保存到本地相册中, 保存相册的代码只有一个方法, 如下所示.

// 将拍照的图片保存到本地UIImageWriteToSavedPhotosAlbum(originalImage, self, @selector(imageSavedToPhotosAlbum:didFinishSavingWithError:contextInfo:), nil);

需要注意的是, 第一个参数是要保存的图片, 第二个参数是要执行方法的target, 第三个参数是selector, 第四个参数是传参数. 第三个参数selector, selector的方法名字一般是有参数的(测试写无参数的, 保存时候回崩溃).

//此方法一般是三个参数, 否则容易出错.- (void)imageSavedToPhotosAlbum:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{NSString *message = @"呵呵";if (!error) {message = @"成功保存到相册";}else{message = [error description];}NSLog(@"message is %@",message);}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。