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)
}