美文网首页IOS开发知识点
iOS事件传递和视图响应

iOS事件传递和视图响应

作者: 是超超呀 | 来源:发表于2021-04-25 14:20 被阅读0次


    iOS事件响应机制的事件传递流程

    - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event:返回事件响应的视图

    - (BOOL) pointInside:(CGPoint)point withEvent:(UIEvent *)event:判断点击位置是否在当前视图范围内

    事件传递的大概流程: 点击屏幕-UIApplication - UIWindow- >寻找处理事件最合适的View->hitTest - pointInsde。

    注意:如果父视图不能接触触摸事件,那么子控件也不能接受到触摸事件

    应用如何找到最合适的控件来处理事件?

    整体事件流程图如下图所示

    事件响应链

    UIResponder是所有响应者对象的基类,正是由于继承了它,才能响应touch事件

    优先是最上层的View响应事件,如果该View有父视图,下一个响应值就是父视图,如果没有就传给他对应的ViewController,这样从最上层View一直传到单例UIWindow对象,最后是单例UIApplication对象以终止,UIApplication的下一个响应者是nil,这样就是整个响应链的过程。

    相关文章

      网友评论

        本文标题:iOS事件传递和视图响应

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