访问系统的相册

访问系统相册首先是需要权限!所以

首先 配置info.plist文件

在info.plist中添加一行Privacy - Photo Library Usage Description
并且类型选为String类型并且在后面填上一个字符串!
要访问系统的相册需要实现两个系统协议的方法!所以需要实现两个协议!
  • UINavigationControllerDelegate
  • UIImagePickerControllerDelegate

    接下来我们可以编程了!

编程:

弹出系统相册:
//首先判断系统的相册能不能用
  if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary])
    {
    //如果可以用,那么需要创建一个UIImagePickerController视图控制器然后在最后跳转到这个控制器,当然了这个是系统的
        UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];

        // 设置源类型 如果是图片库就是访问系统相册 如果是相机就是拍照

        // 设置代理
        imagePickerController.delegate = self;

        // 设置允许编辑
        imagePickerController.allowsEditing = YES;

        // 弹出
        [self presentViewController:imagePickerController animated:YES completion:^{
        //在这里写你想处理的代码
            NSLog(@"图片选择器已弹出");
        }];
    }
    else
    {
        NSLog(@"图片库不可用");
    }

当然了还有两个协议方法!

//第一个方法是当你在系统弹出的控制器中选择完图片以后,点击系统提供的`选择`按钮的操作,其中info参数是一个字典,字典中UIImagePickerControllerEditedImage字段是你在那个视图控制器中选择的图片(类型是UIImage)
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info;

//这个函数是当你选择取消按钮的时候需要处理的事情
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;

示例:

// 已经结束选择 delegate需要让图片选择器dismiss
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{
    // 将选择的图片赋值给imageview
    _imageView.image = info[UIImagePickerControllerEditedImage];

    //取消模态
    [picker dismissViewControllerAnimated:YES completion:nil];

}

// 点击取消按钮 delegate需要让图片选择器dismiss
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
   //取消模态
    [picker dismissViewControllerAnimated:YES completion:nil];
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值