如何在触摸图像视图数组时隐藏图像?

How do I hide image on touch with an array of imageviews?

我有一组图像视图。

var imageViewArray = [UIImageView(image: UIImage())]

我使用 for 循环用来自 url 的图像填充这个数组。我想做到这一点,当我触摸这些图像之一时,它会变成隐藏或 alpha: 0。我试过这个:

let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(StoryVC.imageTapped))
newImage.userInteractionEnabled = true
newImage.addGestureRecognizer(tapGestureRecognizer)

我也尝试添加标签,但我不知道如何获取发件人。我需要能够 运行 隐藏图像的功能并知道要隐藏哪个图像,这是我正在努力解决的部分。提前致谢。

选择器应该是 class 中的一个函数。这是一个例子:

// Setting up the tapGestureRecognizers
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(pressed:))
newImage.userInteractionEnabled = true
newImage.addGestureRecognizer(tapGestureRecognizer)

// The function that handles the tap event
func pressed(sender: UIImageView!) {
    if sender.alpha == 0{
        sender.alpha = 1
    }
    else{
        self.alpha = 0
    }
}

还要确保仔细检查我的语法,我不经常用 Swift 写,所以它可能会有一些小错误。

您在选择器的参数中得到了 UITapGestureRecognizer 对象,它有一个 属性 view 为您提供已点击的视图。

let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.imageTapped(_:)))

func imageTapped(_ sender: UITapGestureRecognizer) {
    guard let tappedImage = sender.view else { return } 
}