美文网首页
手势冲突问题

手势冲突问题

作者: 轻云绿原 | 来源:发表于2019-03-01 14:42 被阅读0次

场景

今天在在一个viewA里addSubview一个tableView,然后在viewA里加手势tapGesture.

问题

tableView里的点击事件不能回调,点击事件只回应viewA里的点击事件.

解决办法

1.增加delegate

gesture.delegate = self

2.实现代理方法

    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
        return !tableView!.bounds.contains(touch.location(in: selectedTableView))
    }

解释:只回应不在tableView范围内里的touch.如果不在tableView范围内就返回true,否则false

其它

上面的是只有一个手势是自定义的(viewA),另一个手势不是自定义的(tableView)

如果是两个手势都是自定义的(viewA,viewB)
可能可以用以下的delegate方法实现(没证实,看字面意思就是为了解决两个手势冲突)

    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRequireFailureOf otherGestureRecognizer: UIGestureRecognizer) -> Bool {
    }
    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
    }
    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldBeRequiredToFailBy otherGestureRecognizer: UIGestureRecognizer) -> Bool {
    }

长按?

    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive press: UIPress) -> Bool {   
    }

相关文章

网友评论

      本文标题:手势冲突问题

      本文链接:https://www.haomeiwen.com/subject/tqeduqtx.html