ios 点击按钮后怎么访问本地相册
2个回答
展开全部
创建工程项目和视图控制器
创建一个single view工程项目,自动创建一个ViewController试图控制器。
创建并初始化UI控件
在ViewController.m创建并初始化UIImageView用于显示获取的图片,UIButton及响应事件。
设置宏定义、添加代理
判断是否是iOS8以上版本系统:
#define IOS8 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0 ? YES : NO)
调用相册需要使用:
UIImagePickerControllerDelegate,UINavigationControllerDelegate代理,iOS7使用UIActionSheet需要添加UIActionSheetDelegate。
完善按钮响应事件
iOS8使用UIAlertController选择获取图片方式;
iOS8使用UIAlertAction选择获取图片方式。
添加自定义方法保存图片到本地沙盒
选择完成后调用。
获取图片缓存并显示
完成示例
要允许app调用相机,读取相册图片。
创建一个single view工程项目,自动创建一个ViewController试图控制器。
创建并初始化UI控件
在ViewController.m创建并初始化UIImageView用于显示获取的图片,UIButton及响应事件。
设置宏定义、添加代理
判断是否是iOS8以上版本系统:
#define IOS8 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0 ? YES : NO)
调用相册需要使用:
UIImagePickerControllerDelegate,UINavigationControllerDelegate代理,iOS7使用UIActionSheet需要添加UIActionSheetDelegate。
完善按钮响应事件
iOS8使用UIAlertController选择获取图片方式;
iOS8使用UIAlertAction选择获取图片方式。
添加自定义方法保存图片到本地沙盒
选择完成后调用。
获取图片缓存并显示
完成示例
要允许app调用相机,读取相册图片。
展开全部
使用iOS开发原生技术:UIImagePickerController
(1)创建相册视图控制器
UIImagePickerController *imagePickVC = [[UIImagePickerController alloc] init];
// 设置代理对象
imagePickVC.delegate = self;
// 开启编辑模式
imagePickVC.allowsEditing = YES;
// 设置媒体类型
imagePickVC.mediaTypes = @[@"public.image"];
(2)判断打开的是相册还是摄像航头
if (buttonIndex == 0) {
imagePickVC.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
} else if (buttonIndex == 1) {
// 要打开摄像头
if ([UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront] || [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear]) {
imagePickVC.sourceType = UIImagePickerControllerSourceTypeCamera;
} else {
iToast *itoast = [iToast makeText:@"当前设备不支持拍摄"];
[itoast show];
return;
}
}
(3)打开系统相册
[self presentViewController:imagePickVC animated:YES completion:nil];
(4)实现代理方法
//点击相册的取消按钮
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
[picker dismissViewControllerAnimated:YES completion:nil];
}
//照片处理方法
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary<NSString *,id> *)editingInfo;
(1)创建相册视图控制器
UIImagePickerController *imagePickVC = [[UIImagePickerController alloc] init];
// 设置代理对象
imagePickVC.delegate = self;
// 开启编辑模式
imagePickVC.allowsEditing = YES;
// 设置媒体类型
imagePickVC.mediaTypes = @[@"public.image"];
(2)判断打开的是相册还是摄像航头
if (buttonIndex == 0) {
imagePickVC.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
} else if (buttonIndex == 1) {
// 要打开摄像头
if ([UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront] || [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear]) {
imagePickVC.sourceType = UIImagePickerControllerSourceTypeCamera;
} else {
iToast *itoast = [iToast makeText:@"当前设备不支持拍摄"];
[itoast show];
return;
}
}
(3)打开系统相册
[self presentViewController:imagePickVC animated:YES completion:nil];
(4)实现代理方法
//点击相册的取消按钮
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
[picker dismissViewControllerAnimated:YES completion:nil];
}
//照片处理方法
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary<NSString *,id> *)editingInfo;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询