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