Ios 两个图像显示不同的图像

Ios 两个图像显示不同的图像,ios,xcode,swift4,Ios,Xcode,Swift4,我正在为我的2UIImage添加2个函数uitagesturerecognizer,用于显示每个不同的图片UIImage 因此,当我点击我的UIImage之一时,UIAlertController将显示并提供2个添加图片的选项(使用相机或使用库) 但是当我添加图片时,它们都显示相同的图片(当我使用imagePickerController 在我添加if-else语句后,即使我点击第二个UIImage 例如: 我有两个UIImage名为imageView1.image和imageView2.ima

我正在为我的2
UIImage
添加2个函数
uitagesturerecognizer
,用于显示每个不同的图片
UIImage

因此,当我点击我的
UIImage
之一时,
UIAlertController
将显示并提供2个添加图片的选项(使用相机或使用库)

但是当我添加图片时,它们都显示相同的图片(当我使用
imagePickerController

在我添加
if-else
语句后,即使我点击第二个
UIImage

例如:

我有两个
UIImage
名为
imageView1.image
imageView2.image

我点击我的第一个
图像视图1。图像
UIAlertController
显示选项(相机和库) 我选择library并选择image1.jpg

选择image1.jpg后,
imageView1.image
imageView2.image
显示相同的图片

func-imagePickerController
中添加
if-else
语句后,image1.jpg仅显示在
if
语句上……即使我点击
imageVIew2.image

但是,我想要的是。。。 当我点击
imageView1.image
并选择image1.jpg时,
imageView1.image
显示image1.jpg和
imageView2.jpg
不显示任何内容

这是我的代码(没有if-else):

这是我的
viewDidLoad

let tapGestureRecognizer1 = UITapGestureRecognizer(target: self, action: #selector(pencetGambarnya1(tapGestureRecognizer1:)))

    imageView1.isUserInteractionEnabled = true
    imageView1.addGestureRecognizer(tapGestureRecognizer1)



    let tapGestureRecognizer2 = UITapGestureRecognizer(target: self, action: #selector(pencetGambarnya2(tapGestureRecognizer2:)))

    imageView2.isUserInteractionEnabled = true
    imageView2.addGestureRecognizer(tapGestureRecognizer2)

创建一个名为targetImage的公共UIImage,并执行以下操作:, 在显示imagePickerController之前,将image1或image2的引用分配给targetImage。完成图像拾取后,只需将拾取的图像设置为targetImage。您可以在下面的代码中看到,我已将targetImage=imageView1

act1.addAction(UIAlertAction(title: "Camera", style: .default, handler: {(UIAlertAction) in
                if UIImagePickerController.isSourceTypeAvailable(.camera) {

                    imagePickerController.sourceType = .camera;
                    targetImage = imageView1
                    self.present (imagePickerController, animated: true, completion: nil)
                } else {


                    print ("Camera ruksak")

                }
            }))
对imageView2也执行同样的操作, 在此之后,修改代码以如下方式设置拾取的媒体

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

            let image1 = info[UIImagePickerControllerOriginalImage] as! UIImage
            targetImage.image = image1

        picker.dismiss(animated: true, completion: nil)

        print ("Slavic Hardbass")
    }

我还没有测试过这个,但是应该可以用。

试试这段代码。希望它对你有用

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

    if picker == imagePickerController
    {
         let image1 = info[UIImagePickerControllerOriginalImage] as! UIImage
         imageView1.image = image1
    }
   else
    {
        let image2 = info[UIImagePickerControllerOriginalImage] as! UIImage
        imageView2.image = image2
    }

   picker.dismiss(animated: true, completion: nil)

    print ("Slavic Hardbass")
}

通过使用此代码在类中添加
var
来解决此问题


感谢您的回复。

func imagePickerController(\picker:UIImagePickerController,didFinishPickingMediaWithInfo:[字符串:任意])中
您将两个图像视图都设置为所选图像。因此,当然这两个视图都具有相同的图像,这就是您的代码所做的。我只是在调试时意识到这一点,但我不知道如何使用if-else设置每个视图。请详细解释解决方案。如果任何答案解决了您的问题,请将该答案标记为已接受。我使用的是if-else我不知道如何将这个答案标记为已接受…@Renziz,你可以在答案中提供参考链接,并将自己的答案标记为已接受。
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

    if picker == imagePickerController
    {
         let image1 = info[UIImagePickerControllerOriginalImage] as! UIImage
         imageView1.image = image1
    }
   else
    {
        let image2 = info[UIImagePickerControllerOriginalImage] as! UIImage
        imageView2.image = image2
    }

   picker.dismiss(animated: true, completion: nil)

    print ("Slavic Hardbass")
}