可以丢弃触摸事件吗?

时间:2012-03-05 19:35:10

标签: ios

我有一个iOS游戏,在加载屏幕期间,用户似乎已经缓冲了任何触摸,所以一旦完成加载(可能需要几秒钟),我就会得到触摸事件。

我有办法放弃所有接触吗?

1 个答案:

答案 0 :(得分:0)

好吧,这是一个非常老的问题,但是对于任何绊脚石的人来说,可以仅采用以下两种方法之一

方法1。

DiscardTouchView.addGestureRecognizer(UITapGestureRecognizer())

基本上添加一个空手势。因此,在点击该视图时,什么也不会发生。

方法2。

在这种情况下,您不会在视图中添加空手势识别器。如果DiscardTouchViewSomeParentView的子视图,其中有一个UIGestureRecognizer对象,则可以获取该对象并ignore

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    guard let tappedView = touches.first?.view else { return }
    if(tappedView == DiscardTouchView) {
        guard let recognizer = touches.first?.gestureRecognizers?.first else { return }
        recognizer.ignore(touches.first!, for: event!)
    }
}

userInteractionEnabled设置为false实际上会将触摸事件从子视图传递到超级视图。它不会丢弃触摸事件。

将简单的userInteractionEnabled的{​​{1}}设置为true即可。