我有一个UIImageViews数组,并以编程方式为他们分配了轻击手势识别器。
myImages.forEach{ UIImageView in
let tap = UITapGestureRecognizer(target: self, action: #selector(handleTap(gesture:)))
tap.numberOfTapsRequired = 1
tap.delegate = self
view.addGestureRecognizer(tap)
}
将发件人分配给每个人(或确定以另一种方式点击哪个图像)的最佳方法是什么?我没试过
var tag = sender.view!.tag
谢谢!
在这里你需要按照两个步骤,
步骤1
在附加到myImages数组之前为imageview指定tags
。
第2步
从imageview数组中获取标记并分配给您的每个手势
myImages.forEach{
let tap = UITapGestureRecognizer(target: self, action: #selector(handleTap(_:)))
tap.numberOfTapsRequired = 1
tap.view?.tag = $0.tag
$0.isUserInteractionEnabled = true
$0.addGestureRecognizer(tap)
}
和处理func一样
@objc func handleTap(_ sender: UITapGestureRecognizer) {
guard let getTag = sender.view?.tag else { return }
print("getTag == \(getTag)")
}
您可以使用UITapGestureRecognizer init提供的块来访问您的图像。
myImages.forEach { image in
let tap = UITapGestureRecognizer(block: {[weak self] _ in
//Do your stuff here
//print("Image Tapped:", image.debugDescription)
}, delegate: self)
tap.numberOfTapsRequired = 1
image.addGestureRecognizer(tap)
}