iOS中,系统相册的那些事

本文介绍了在iOS中获取和自定义相册的两种方法,包括使用UIImagePickerController的直接方式和通过ALAssetsLibrary与Photos.framework的自定义方式。对比了ALAssetsLibrary(已废弃)与Photos框架的差异,如适用版本和资源获取效率。
摘要由CSDN通过智能技术生成

拍照也是一门技术

写在前面
  • 在手机APP日益增加的前提下,如何更好的提升用户的交互体验似乎成为衡量一个APP重要指标。上述的感悟源于实际工作的需求,就是在APP中添加一个更换用户头像的功能。
  • 也许别人会认为这样一个小功能不算什么,但从用户交互角度考虑,这样一个功能的设计有一定学问,待我慢慢道来。
获取相册最直接的方式——UIImagePickerController
  • 功能介绍:可直接显示分组的相处的列表,用户选择不同相册的照片后,可在委托方法中获得该图片对象;

  • API提供三种数据源:

UIImagePickerControllerSourceTypeCamera: //拍照
UIImagePickerControllerSourceTypePhotoLibrary: //相册
UIImagePickerControllerSourceTypeSavedPhotosAlbum: //图片库
  • 基本使用
     //UIImagePickerController 属于UIKit
      UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
      // 若设备支持相机,使用拍照功能;否则从照片库中选择
      if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
   
       imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
      } else {
   
       imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
      }
      imagePicker.delegate = self; //设置委托,
  • 跳转到系统相册界面
_imagePickerController.allowsEditing = YES;//允许拍照完对照片进行裁剪
[self presentViewController:_imagePickerController animated:YES completion:nil];

写到这里,基本的调用系统相册的功能就实现了,唯一需要做的是参数配置

  • 遵守的协议
    UINavigationControllerDelegate,UIImagePickerControllerDelegate
 代理方法
 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{
   
        //成功获取照片
}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
   
            //获取照片失败
}
  • 捕捉多媒体的的类型 UIImagePickerControllerCameraCaptureMode
UIImagePickerControllerCameraCaptureModePhoto,//照片
UIImagePickerControllerCameraCaptureModeVideo//视频
  • 摄像头的类型 UIImagePickerControllerCameraDevice
UIImagePickerControllerCameraDeviceRear,//后置摄像头
UIImagePickerControllerCameraDeviceFront //前置摄像头                
UIImagePickerControllerCameraFlashMode // 设置闪光灯的模式
UIImagePickerControllerCameraFlashModeOff  = -1,//关闭闪光灯
UIImagePickerControllerCameraFlashModeAuto = 0
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值