• Swift3.0:照片选择


    一、介绍

     图片选择或者拍照功能:

     1、选择相册中的图片或是拍照,都是通过UIImagePickerController控制器实例化一个对象,然后通过self.presentViewController方法推出界面显示。但是使用presentViewController的类需要实现UIImagePickerControllerDelegate、UINavigationController两个代理。

     2、UIImagePickerController可以通过isSourceTypeAvailable方法来判断设备是否支持照相机/图片库/相册功能。如果支持,可以通过sourceType属性来设置图片控制器的显示类型。类型一共分为3种:PhotoLibrary(照片库)、Camera(相机)、SavedPhotoAlbum(相册)

    3、实现协议截图

    二、实例

    1、使用相册选择步骤:

    • 判断是否支持要使用的图片库或相册功能
    • 初始化图片控制器对象
    • 指定图片控制器对象的代理
    • 指定图片控制器的类型,前提是必须先导入MobileCoreServices.framework框架
    • 弹出显示图片控制器
    • 实现图片控制住器代理方法
     func chooseImageFromAlbum(){
            
            //判断是否支持要使用的图片库
            if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) {
                
                //初始化图片控制器
                let picker = UIImagePickerController()
                
                //设置代理
                picker.delegate = self
                
                //设置媒体类型
                picker.mediaTypes = [kUTTypeImage as String,kUTTypeVideo as String]
                
                //设置允许编辑
                picker.allowsEditing = true
                
                //指定图片控制器类型
                picker.sourceType = .photoLibrary
                
                //弹出控制器,显示界面
                self.present(picker, animated: true, completion: nil)
            }
            else{
                
                let alert = UIAlertView.init(title: "读取相册错误!", message: nil, delegate: nil, cancelButtonTitle: "确定")
                alert.show()
            }
        }
        
     //实现图片控制器代理方法
     func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
            
            //查看info对象
            print(info)
            
            //获取选择的原图
            let originImage = info[UIImagePickerControllerOriginalImage] as! UIImage
            
            //赋值,图片视图显示图片
            self.pickerView.image = originImage
            
            //图片控制器退出
            picker.dismiss(animated: true, completion: nil)
        }
        
        //取消图片控制器代理
        func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
            
            //图片控制器退出
            picker.dismiss(animated: true, completion: nil)
        }

    2、拍照步骤:

    • 判断是否支持拍照功能
    • 初始化图片控制器对象(可以设置是否允许编辑)
    • 指定图片控制器对象的代理
    • 指定图片控制器的类型
    • 弹出显示图片控制器
    func takePhotoFromCamera() {
            
            //判断是否支持相机
            if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) {
                
                //初始化图片控制器
                let picker = UIImagePickerController()
                
                //设置代理
                picker.delegate = self
                
                //设置媒体类型
                picker.mediaTypes = [kUTTypeImage as String,kUTTypeVideo as String]
                
                //设置来源
                picker.sourceType = UIImagePickerControllerSourceType.camera
                
                //设置镜头 front:前置摄像头  Rear:后置摄像头
                if UIImagePickerController.isCameraDeviceAvailable(UIImagePickerControllerCameraDevice.front) {
                    picker.cameraDevice = UIImagePickerControllerCameraDevice.front
                }
                
                //设置闪光灯(On:开、Off:关、Auto:自动)
                picker.cameraFlashMode = UIImagePickerControllerCameraFlashMode.on
                
                //允许编辑
                picker.allowsEditing = true
                
                //打开相机
                self.present(picker, animated: true, completion: nil)
            }
            else{
                
                let alert = UIAlertView.init(title: "找不到相机!", message: nil, delegate: nil, cancelButtonTitle: "确定")
                alert.show()
            }
        }
  • 相关阅读:
    WebService-.Net:添加web引用和添加服务引用有什么区别?
    袁氏-人物-科学家:袁隆平(首届国家最高科学技术奖得主、杂交水稻之父)
    术语-BLOB:BLOB
    术语-PM:PM/项目管理 百科
    计算机:SAP (服务访问点(Service Accessing point))
    服务器-Web服务器-Tengine:Tengine 百科
    笔记-Git:Git 笔记
    DB-MDM:MDM/主数据管理 百科
    DB-MD:MD/主数据
    [Ext JS 4] 实战之 带week(星期)的日期选择控件
  • 原文地址:https://www.cnblogs.com/XYQ-208910/p/6444346.html
Copyright © 2020-2023  润新知