【问题标题】:Allows editing UIImagePickerViewController doesn't work picking 2 different images允许编辑 UIImagePickerViewController 不能选择 2 个不同的图像
【发布时间】:2018-04-26 19:43:44
【问题描述】:

我有一个带有 2 个 UIImageViews 和 2 个按钮的视图,以便使用 UIImagePickerViewController 选择 2 张不同的图片。它实际上很完美,但我想缩放图像并最终在UIImageViews 中显示图像的选定部分。

允许编辑与缩放一起正常工作,它显然“允许编辑”图片,但最终选定的部分不会显示在 UIImageViews 中。

代码在这里。怎么了?

import UIKit

var fotoUnoEscogida = UIImage()
var fotoDosEscogida = UIImage()


class viewControllerDso : UIViewController, UIImagePickerControllerDelegate ,UINavigationControllerDelegate, UITextViewDelegate{


    //Images
    @IBOutlet weak var imageView1: UIImageView!
    @IBOutlet weak var imageView2: UIImageView!
    //TextViews
    @IBOutlet weak var textViewExteriorUno: UITextView!
    @IBOutlet weak var textViewExteriorDos: UITextView!
    @IBOutlet weak var textViewInteriorUno: UITextView!
    @IBOutlet weak var textViewInteriorDos: UITextView!




    var imagePicker = UIImagePickerController()
    var imagePicked = 0

    override func viewDidLoad() {
        super.viewDidLoad()



    }


    @IBAction func chooseImage(sender: UIButton) {
        if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.SavedPhotosAlbum){
            print("chooseImage Button capture ")

            imagePicked = sender.tag
            imagePicker.delegate = self
            imagePicker.sourceType = .SavedPhotosAlbum
            imagePicker.allowsEditing = true

            self.presentViewController(imagePicker, animated: true, completion: nil)
        }
    }
    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
        let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage

        if imagePicked == 1 {

            imageView1.contentMode = UIViewContentMode.ScaleAspectFill
            imageView1.image = pickedImage

            imageView1.layer.masksToBounds = true
            imageView1.layer.borderWidth = 6
            imageView1.layer.cornerRadius = imageView1.layer.frame.height/6
            imageView1.layer.borderColor = UIColor.purpleColor().colorWithAlphaComponent(0.2).CGColor




        } else if imagePicked == 2 {


            imageView2.contentMode = UIViewContentMode.ScaleAspectFill
            imageView2.image = pickedImage

            imageView2.layer.masksToBounds = true
            imageView2.layer.borderWidth = 6
            imageView2.layer.cornerRadius = imageView2.layer.frame.height/6
            imageView2.layer.borderColor = UIColor.purpleColor().colorWithAlphaComponent(0.2).CGColor




        }
        dismissViewControllerAnimated(true, completion: nil)
    }


}

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    didFinishPickingMediaWithInfo 而不是

    let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage
    

    使用

    let pickedImage = info[UIImagePickerControllerEditedImage] as? UIImage
    

    【讨论】:

      【解决方案2】:

      更新 Swift 5.2

      let pickedImage = info[UIImagePickerController.InfoKey.editedImage]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-26
        • 1970-01-01
        相关资源
        最近更新 更多