ios - tapGesture 未被执​​行

标签 ios swift uitapgesturerecognizer

我已将 tapGesture 添加到我的 UIImageView rDot。问题是当我点击 rDot 时没有任何反应并且它不打印“It worked”。 rDot 与其他元素处于堆栈 View 中,我不知道这是否与它不起作用有关。 rDot 和 redDot 是两个独立的 UIImageView。

 override func viewDidLoad() {
    super.viewDidLoad()

        rDot.isUserInteractionEnabled = true
        let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(rdotimageTapped(tapGestureRecognizer:)))
        rDot.addGestureRecognizer(tapGestureRecognizer)                        
}

func rdotimageTapped(tapGestureRecognizer: UITapGestureRecognizer) {
        whiteD?.isHidden = true
        redDot?.isHidden = false
        print("It worked")
    }

最佳答案

您需要将 subView 放在前面,因为您已将 imageView 放在 stackView 中。有时 View 层次结构无法识别点击的 subview

override func viewDidLoad() {
    super.viewDidLoad()

    rDot.isUserInteractionEnabled = true
    let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(rdotimageTapped(tapGestureRecognizer:)))
    rDot.addGestureRecognizer(tapGestureRecognizer) 
    view.bringSubview(toFront: rDot)                
}

关于ios - tapGesture 未被执​​行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45945142/

相关文章:

swift - 错误域=NSURLErrorDomain 代码=-999 "cancelled"Xcode

accelerometer - 如何通过 Apple TV Siri Remote 检测颠簸

swift - UITextView:添加GestureRecognizer并找到textView的标签

ios - 如何将 SwiftyJSON 对象数组转换为 SwiftyJSON 对象?

ios - 2019 年编写 Apple 帮助手册

ios - ScrollView 中 UIView 的 UITapGestureRecognizer 不起作用

ios - 请求 AVAssets 时维护顺序

jquery - 为使用 PhoneGap 构建的 iPhone 应用程序加速 jQuery Mobile 1.1 中的页面转换?

ios - NSFetchedResultsController并不总是调用didChangeObject :atIndexPath:forChangeType:newIndexPath: for NSFetchedResultsChangeMove

ios - 我们可以在窗口中调试iphone应用程序吗