我将UITapGestureRecognizer附加到两个不同的图像视图中,这些图像视图将在不同的时间占用相同的空间。目前我正在使用翻转过渡,当拍摄图像时,它会翻转到另一侧的图像,就像卡片翻转一样。我可以让第一张图像翻转得很好但是一旦翻转,第二张图像在点击时根本不响应。我使用print("tapped")
来查看第二张图片是否获得了点按手势,但事实并非如此。这是我用来添加轻击手势的功能:
func addTapGestures() {
jokerImageView.isUserInteractionEnabled = true
vendettaImageView.isUserInteractionEnabled = true
let tap = UITapGestureRecognizer(target: self, action: #selector(flipView(_:)))
jokerImageView.addGestureRecognizer(tap)
vendettaImageView.addGestureRecognizer(tap)
}
答案 0 :(得分:0)
UITapGestureRecognizer
是一个独特的对象。它一次只能添加到一个元素中。
因此,在您的代码中,您将其添加到jokerImageView
,然后立即删除并将其添加到vendettaImageView
。
您需要创建UITapGestureRecognizer
的2个实例,或者需要在使用"之后将其添加到joker
。 vendetta
,反之亦然。
编辑:您可以尝试以下操作,而不是创建第二个手势识别器:
func flipView(_ sender: Any) -> Void {
// view flip code goes here
// then
if let g = sender as? UIGestureRecognizer {
if g.view == vendettaImageView {
jokerImageView.addGestureRecognizer(g)
} else {
vendettaImageView.addGestureRecognizer(g)
}
}
}