我知道这是一个旧帖子,但我发现类似的东西,希望对其他人有用。我只是将我的imageView存储在一个数组中,并在一个函数中将其分配给相同的手势识别器,以设置每个imageView。
在我的viewDidLoad()中:
imageViewList = [imageView, imageView2, imageView3]
setupImageViews(imageViews: imageViewList)
设置图像视图的函数:
func setupImageViews(imageViews: [UIImageView]) {
for imageView in imageViews {
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(imageTapped(tapGestureRecognizer:)))
imageView.isUserInteractionEnabled = true
imageView.addGestureRecognizer(tapGestureRecognizer)
imageView.autoresizingMask = [.flexibleWidth, .flexibleHeight, .flexibleBottomMargin, .flexibleRightMargin, .flexibleLeftMargin, .flexibleTopMargin]
imageView.contentMode = .scaleAspectFit
imageView.clipsToBounds = true
}
}
在action selector的imageTapped()方法中,您可以为每个被点击的图片视图编写相应的代码。
@objc func imageTapped(tapGestureRecognizer: UITapGestureRecognizer)
{
switch tapGestureRecognizer.view {
case imageView:
print("tapped Image View 1")
case imageView2:
print("tapped Image View 2")
case imageView3:
print("tapped Image View 3")
default:
print("Tap not detected")
}
_ = tapGestureRecognizer.view as! UIImageView
}