博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
调用系统相册
阅读量:5826 次
发布时间:2019-06-18

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

遇到一个问题:相机的界面总是显示英文。 查了下资料发现在 info.plist里面添加Localized resources can be mixed   = YES ,表示是否允许应用程序获取框架库内语言(前题是手机要设置为中文)

1.首先遵循协议

复制代码

2.根据需要选择调用相机/相册

这里我们一般会使用UIActionSheet中(需要遵循UIActionSheetDelegate协议)

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"拍照",@"从相册选择", nil];actionSheet.actionSheetStyle = UIActionSheetStyleDefault;[actionSheet showInView:self.view];复制代码
UIActionSheetDelegate

根据被点击的按钮做出反应,0对应destructiveButton,之后的button依次排序

#pragma mark - UIActionSheetDelegate- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {        if (buttonIndex == 0) {                NSLog(@"拍照");        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {                        UIImagePickerController *imageController = [[UIImagePickerController alloc] init];            [imageController setSourceType:UIImagePickerControllerSourceTypeCamera];    // 设置类型            [imageController setDelegate:self];            [imageController setAllowsEditing:YES];    // 设置是否可以编辑            [self presentViewController:imageController animated:YES completion:nil];        }else{                        [self showAlertWith:@"提示" andMessage:@"哎呀,当前设备没有摄像头。"];        }    }else if (buttonIndex == 1) {                NSLog(@"相册");        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {            UIImagePickerController *imageController = [[UIImagePickerController alloc] init];            [imageController setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];// 设置为相册类型            [imageController setDelegate:self];            [imageController setAllowsEditing:YES];            [self presentViewController:imageController animated:YES completion:nil];        }else{                        [self showAlertWith:@"提示" andMessage:@"图片库不可用。"];        }    }}复制代码
UIImagePickerControllerDelegate

当获取到照片或视频后调用

#pragma mark UIImagePickerControllerDelegate- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {        NSLog(@"获取成功");    UIImage *pickedImage = nil;    if ([picker allowsEditing]) {        pickedImage = [info objectForKey:UIImagePickerControllerEditedImage];    } else {        pickedImage = [info objectForKey:UIImagePickerControllerOriginalImage];    }    NSString *imagePath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"image.png"];    [UIImagePNGRepresentation(pickedImage) writeToFile:imagePath atomically:YES];     self.imageView.image = [UIImage imageNamed:pickedImage];    // 使用}复制代码

转载于:https://juejin.im/post/5a30e52b6fb9a04528467b08

你可能感兴趣的文章
在PL/SQL中获取操作系统环境变量
查看>>
[转]linux创建链接文件的两种方法
查看>>
python ipaddress模块使用
查看>>
统计文件里面某个字符串出现次数
查看>>
文件权限
查看>>
云从科技发布3D结构光人脸识别技术
查看>>
busybox里的僵尸进程为何那么多
查看>>
appium自动化属性使用一
查看>>
python debug
查看>>
java 连接数据库之一个完整的函数
查看>>
centos5.6下virtualbox安装手记
查看>>
mysql脚本
查看>>
OllyDBG 入门系列教学--让你瞬间成为破解高手
查看>>
jQuery插件开发的准备
查看>>
Dubbo点滴(2)之集群容错
查看>>
Zend Framework 自动加载类的实现方法
查看>>
Cloudera携手CenturyLink提供大数据即服务
查看>>
所有代码都需要单元测试覆盖吗?
查看>>
如何创建线程
查看>>
Eclipse搭建Android ADT+SDK+AVD
查看>>