ios - 捕获两个图像并将其显示到两个 UIImageView
问题描述
我打算在同一个视图控制器上拍摄 2 张个人资料照片,两者都有自己独立的按钮和图像视图。
我为此使用了 Swift 版本 4。
class ViewController: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate {
@IBOutlet weak var profileA: UIImageView!
@IBOutlet weak var profileB: UIImageView!
var profileAPicker: UIImagePickerController!
var profileBPicker: UIImagePickerController!
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
profileAPicker.dismiss(animated: true, completion: nil)
profileA.image = info[.originalImage] as? UIImage
profileBPicker.dismiss(animated: true, completion: nil)
profileB.image = info[.originalImage] as? UIImage
}
@IBAction func takeProfileA(_ sender: Any) {
profileAPicker = UIImagePickerController()
profileAPicker.delegate = self
profileAPicker.sourceType = .camera
present(profileAPicker, animated: true , completion: nil)
}
@IBAction func takeProfileB(_ sender: Any) {
profileBPicker = UIImagePickerController()
profileBPicker.delegate = self
profileBPicker.sourceType = .camera
present(profileBPicker, animated: true , completion: nil)
}
}
当我为 profileA 拍照时它可以工作,但是当我为 profileB 拍照时它会停止。
解决方案
如果我理解正确的问题...似乎可以通过这种方式解决问题:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
picker.dismiss(animated: true, completion: nil)
if picker == profileAPicker {
profileA.image = info[.originalImage] as? UIImage
}
else if picker == profileBPicker {
profileB.image = info[.originalImage] as? UIImage
}
}
推荐阅读
- node.js - TypeORM 使用 select 急切加载无效的列名
- java - Razor Pay 回调方法不在后台调用
- flutter - 导航到 Flutter 应用程序中的另一个页面后如何从小部件返回到 StreamBuilder?
- html - @font-face 不会显示
- ocr - 使用 Tesseract 进行 OCR 匹配模板感兴趣区域 (ROI)
- python - pytest-mock 如何修补嵌套函数
- github-actions - 构建 PR 的 Github Actions 会泄露秘密吗?
- javascript - 将 forEach 和 Reduce 映射到 Map 对象时遇到问题
- angular - 如何在码头集装箱内路由角度?
- multithreading - 从多个线程对 Kotlin var 的线程安全访问