在 @IBAction 里
let vc = UIImagePickerController()
vc.sourceType = .photoLibrary // 相簿
vc.delegate = self
vc.allowsEditing = true
present(vc, animated: true)
到这边会报错是正常的,因为没给它 UIImagePickerControllerDelegate
因此在专案里用 extension 去写委任
extension MainVC: UIImagePickerControllerDelegate, UINavigationControllerDelegate{
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let image = info[UIImagePickerController.InfoKey(rawValue: "UIImagePickerControllerEditedImage") ] as? UIImage{
imageView.image = image
}
picker.dismiss(animated: true, completion: nil)
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
picker.dismiss(animated: true, completion: nil)
}
}
附上完整程序码
import UIKit
class MainVC: UIViewController {
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
self.navigationController?.setNavigationBarHidden(true, animated: false)
}
@IBAction func didTapButton(_:UIButton) {
let vc = UIImagePickerController()
vc.sourceType = .photoLibrary
vc.delegate = self
vc.allowsEditing = true
present(vc, animated: true)
}
}
extension MainVC: UIImagePickerControllerDelegate, UINavigationControllerDelegate{
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let image = info[UIImagePickerController.InfoKey(rawValue: "UIImagePickerControllerEditedImage") ] as? UIImage{
imageView.image = image
}
picker.dismiss(animated: true, completion: nil)
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
picker.dismiss(animated: true, completion: nil)
}
}
这样就完成从相簿选取照片的实作了!
#完赛心得
13th铁人赛到今天完赛了,终於完成连续30天的自我挑战!透过铁人赛,让自己从最基本的说明介绍开始,更扎实地打好基本功,也更了解那些官方文件未提及的面向。这30天记录了使用 swift 开发实作的过程,希望自己在完赛後,也能持续使用 swift 开发更多实作。感谢各位邦友收看!
今天要来看一下在JavaScript中的Inheritance(继承)概念。继承的概念在需要重复建立...
因为这次需要开发的内容涉及前後端,所以环境配置的部分会分成几个部分下来讨论 此次开发相关资料如下 g...
怕爆,连假第3天就快忘记发文了,卡个位还要300字! 一般资讯单位相信都有普遍人力不足的问题,但即使...
嗨各位大大好,我是 Robin~ 今天要来挑战一个我以前不敢写的主题, 就是职涯方面的文章。 今天会...
Object storage - 云端最流行的储存方式 Object storage和file st...