• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift3.0:照片选择

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、介绍

 图片选择或者拍照功能:

 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()
        }
    }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【Swift】日期比较函数记录下ComparingdateinSwift发布时间:2022-07-13
下一篇:
swift3.0新特征发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap