Swift 4.2,UITapGestureRecognizer在scrollview中不起作用

时间:2018-10-16 22:19:30

标签: ios swift uiscrollview uitapgesturerecognizer

由于某些原因,UITapGestureRecognizer不会在我的滚动视图中触发。我尝试了许多无济于事的解决方案。

ScrollView:

let scrollView: UIScrollView = {

    let scroll = UIScrollView()

    scroll.translatesAutoresizingMaskIntoConstraints = false
    scroll.showsHorizontalScrollIndicator = false
    scroll.showsVerticalScrollIndicator = false

    return scroll
}()

包含滚动视图中所有视图的视图(因此“视图”位于此视图中,而不是直接位于滚动视图中):

let contentView: UIView = {

    let view = UIView()

    view.translatesAutoresizingMaskIntoConstraints = false

    return view
}()

手势识别器:

let gesture = UITapGestureRecognizer(target: self, action:  #selector(self.viewTap))
            gesture.cancelsTouchesInView = false
            gesture.numberOfTapsRequired = 1
            view.addGestureRecognizer(gesture)

操作:

@objc func viewTap(sender : UITapGestureRecognizer) {
     // do stuff
}

视图层次结构(https://imgur.com/a/wr3tge4):

[scrollView]
   [contentView]
      [view] <- UITapGestureRecognizer here

提前感谢一吨!

1 个答案:

答案 0 :(得分:0)

将视图的颜色(带有手势)更改为突出的颜色,例如红色或黄色。运行您的应用程序,首先检查您是否看到了视图,然后使用“视图UI层次结构”功能来查看您的视图是否实际上没有被任何东西阻止

enter image description here enter image description here