iOS 让其他 UIGestureGestureRecognizer 的 UIGestureGestureRecognizer 失败?
iOS Let UIGestureGestureRecognizer failed for other UIGestureGestureRecognizer?
我通过扩展一个名为 myView2
的退出视图来编写 UIView
class 称为 myView1
。
在myView2
注册了一个UITapGestureRecognizer
(叫tap2),我也想在myView1
注册一个UITapGestureRecognizer
(叫tap1)。
我想系统调用 tap1 first
,然后在 tap1 失败时调用 tap2
。所以我调用下面的方法。
[tap2 requireGestureRecognizerToFail:tap1];
-(void)handleTap1:(UITapGestureRecognizer *) sender{
if () {
// let tap1 failed, then call tap2.
}
}
The question is that : how to let tap1 failed, then call tap2. tap2 is
the UITapGestureRecognizer
of super class myView2.
点击手势可以同时被一个视图识别,参考iOS事件响应链。对于同类型的手势识别器,据我所知,requireGestureRecognizerToFail
对你帮助不大。
如果tap1 failed
条件依赖于你的私有逻辑,你应该自己手动实现事件转发。如果它们之间确实存在触摸手势冲突,则实现UITapGestureRecognizer
/UIGestureRecognizer
的委托来识别它们的状态,包括begin/move/end点。
我通过扩展一个名为 myView2
的退出视图来编写 UIView
class 称为 myView1
。
在myView2
注册了一个UITapGestureRecognizer
(叫tap2),我也想在myView1
注册一个UITapGestureRecognizer
(叫tap1)。
我想系统调用 tap1 first
,然后在 tap1 失败时调用 tap2
。所以我调用下面的方法。
[tap2 requireGestureRecognizerToFail:tap1];
-(void)handleTap1:(UITapGestureRecognizer *) sender{
if () {
// let tap1 failed, then call tap2.
}
}
The question is that : how to let tap1 failed, then call tap2. tap2 is the
UITapGestureRecognizer
of super class myView2.
点击手势可以同时被一个视图识别,参考iOS事件响应链。对于同类型的手势识别器,据我所知,requireGestureRecognizerToFail
对你帮助不大。
如果tap1 failed
条件依赖于你的私有逻辑,你应该自己手动实现事件转发。如果它们之间确实存在触摸手势冲突,则实现UITapGestureRecognizer
/UIGestureRecognizer
的委托来识别它们的状态,包括begin/move/end点。