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

(2)样例代码
九、UIImagePickerController 的扩展
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)