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

本文共 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

你可能感兴趣的文章
基于API调用的恶意软件分析技术
查看>>
顺序容器
查看>>
NodeJs——进程管理(一)
查看>>
微信支付开发(7) H5支付
查看>>
ffmpeg解码RTSP/TCP视频流H.264(QT界面显示视频画面)
查看>>
深度学习入门:投身深度学习你需要哪些准备?
查看>>
南京大学周志华教授当选欧洲科学院外籍院士
查看>>
医疗数据难获得,人工智能医疗发展遭遇瓶颈期
查看>>
数据集成服务破解SaaS集成难题
查看>>
【云栖大会】阿里云和红帽达成合作为百万级客户提供更多企业级解决方案
查看>>
GNU Chess
查看>>
漂亮的字体组合的秘密
查看>>
免费高品质的纹理素材网站
查看>>
《Linux From Scratch》第一部分:介绍 第一章:介绍-1.1 如何构建LFS系统
查看>>
Sketch的过去现在和未来
查看>>
TableEdit UI_10
查看>>
[译] 通知是一种「暗模式」吗?
查看>>
企业在云迁移过程中需解决常见的IP地址问题
查看>>
AWS 张侠:为企业创新和转型提供助力
查看>>
阿里云王坚:运营才能缔造真正的云计算
查看>>