返回 导航

Swift

hangge.com

Swift - 异步编程库PromiseKit使用详解8(UIImagePickerController的扩展)

作者:hangge | 2018-12-19 08:10
    要从相册中的选择图片,自然少不了图片选择器(UIImagePickerController)。PromiseKit 同样也对其进行了扩展,我们使用时不再需要实现相关的代理方法,只需通过链式调用的方式即可获取到结果。

九、UIImagePickerController 的扩展

1,准备工作

我们同样要安装 PromiseKit 库,以及相关的 UIKit 扩展库,具体步骤参考我之前的文章:

2,使用样例

(1)效果图
  • 点击“选择照片”,自动打开相册选择照片
  • 照片选中后,返回原界面并加载照片原图,同时控制台会打印照片的 info 信息
  • 如果选择照片前打开“编辑”开关,选中照片后会先进入照片编辑页面
           
       

(2)样例代码
import UIKit
import PromiseKit
import PMKUIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var imageView: UIImageView!
    @IBOutlet weak var editSwitch: UISwitch!
    
    //选取相册
    @IBAction func fromAlbum(_ sender: Any) {
        
        //初始化图片控制器
        let picker = UIImagePickerController()
        //指定图片控制器类型
        picker.sourceType = UIImagePickerController.SourceType.photoLibrary
        //设置是否允许编辑
        picker.allowsEditing = editSwitch.isOn
        
        //显示图片控制器选择图片
        self.promise(picker).done { info in
            //查看info对象
            print(info)
            
            //显示的图片
            let image:UIImage!
            if self.editSwitch.isOn {
                //获取编辑后的图片
                image = info[UIImagePickerController.InfoKey.editedImage.rawValue] as? UIImage
            }else{
                //获取选择的原图
                image = info[UIImagePickerController.InfoKey.originalImage.rawValue] as? UIImage
            }

            self.imageView.image = image
        }.catch { error in
            print("读取相册错误")
        }
    }
}
评论

全部评论(0)

回到顶部