UIImageView 周围的点击识别器
Tap recognizer around UIImageView
美好的一天,我在 UIView 中有 UIImageView,当用户点击 UIView 背景而不是 UIImageView 时,我想处理事件。我怎样才能实现它?我阅读了有关 UITapGestureRecognizer 的内容,但它让我有些困惑。
P.S。如果你能回答swift.
为您的 imageView 添加这一行,因为 UIImageView 默认用户交互是禁用的。如果您将启用 UIImageView 用户交互,那么它将不适用于您的 UIView,而在 UIImageView 之外它将起作用
yourImage.userInteractionEnabled = YES;
试试这个你点击的点击会起作用
如果您想在主视图的子视图上禁用 UITapGestureRecognizer
,那么您必须像这样 UIImageView
启用用户交互
imgTest.userInteractionEnabled = true;
然后您必须设置 UITapGestureRecognizer
的委托来检测视图的 UITouch
,像这样设置委托
let touch = (UITapGestureRecognizer(target: self, action: "tapDetected:"))
touch.delegate = self
self.view.addGestureRecognizer(touch)
然后你必须实现 UITapGestureRecognizer
的 Delegate 方法,你将在其中检测当前被触摸的视图,如下所示
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
if touch.valueForKey("view")!.isKindOfClass(UIImageView) {
return false
} else {
return true
}
}
在上面的代码中,我禁用了 UIImageView
上的点击手势
现在,此方法仅适用于您的 self.view
,不适用于 UIImageView
func tapDetected(sender: UITapGestureRecognizer) {
self.dismissViewControllerAnimated(false, completion: nil)
}
美好的一天,我在 UIView 中有 UIImageView,当用户点击 UIView 背景而不是 UIImageView 时,我想处理事件。我怎样才能实现它?我阅读了有关 UITapGestureRecognizer 的内容,但它让我有些困惑。
P.S。如果你能回答swift.
为您的 imageView 添加这一行,因为 UIImageView 默认用户交互是禁用的。如果您将启用 UIImageView 用户交互,那么它将不适用于您的 UIView,而在 UIImageView 之外它将起作用
yourImage.userInteractionEnabled = YES;
试试这个你点击的点击会起作用
如果您想在主视图的子视图上禁用 UITapGestureRecognizer
,那么您必须像这样 UIImageView
启用用户交互
imgTest.userInteractionEnabled = true;
然后您必须设置 UITapGestureRecognizer
的委托来检测视图的 UITouch
,像这样设置委托
let touch = (UITapGestureRecognizer(target: self, action: "tapDetected:"))
touch.delegate = self
self.view.addGestureRecognizer(touch)
然后你必须实现 UITapGestureRecognizer
的 Delegate 方法,你将在其中检测当前被触摸的视图,如下所示
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
if touch.valueForKey("view")!.isKindOfClass(UIImageView) {
return false
} else {
return true
}
}
在上面的代码中,我禁用了 UIImageView
现在,此方法仅适用于您的 self.view
,不适用于 UIImageView
func tapDetected(sender: UITapGestureRecognizer) {
self.dismissViewControllerAnimated(false, completion: nil)
}