美文网首页
同时响应父视图、子视图触摸事件

同时响应父视图、子视图触摸事件

作者: 高高叔叔 | 来源:发表于2018-05-11 15:16 被阅读72次

    实际应用场景中有的时候需要触摸父视图事件同时响应子视图事件,当时困扰了我很长时间。

    Gesture Recognizers与事件分发路径的关系

    Gesture Recognizers可能会延迟将触摸事件发送到hit-test view上,默认情况下,当Gesture Recognizers识别到手势后,会向hit-test view发送cancel消息,来取消之前发给hit-test view的事件。控制这个流程的是UIGestureRecognizer的三个属性

    cancelsTouchesInView为YES,表示当Gesture Recognizers识别到手势后,会向hit-test view发送 touchesCancelled:withEvent:消息来取消hit-test view对此触摸序列的处理,这样只有Gesture Recognizers能响应此触摸序列,hit-test view不再响应。如果为NO,则不发送touchesCancelled:withEvent:消息给hit-test view,这样会使Gesture Recognizers和hit-test view同时响应触摸序列。

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismiss)];
    tapGesture.delegate = self;
    tapGesture.cancelsTouchesInView = NO;  
    [self addGestureRecognizer:tapGesture];
    

    tapGesture.cancelsTouchesInView直接设置NO就好

    相关文章

      网友评论

          本文标题:同时响应父视图、子视图触摸事件

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