美文网首页
iOS之事件的传递和响应机制

iOS之事件的传递和响应机制

作者: 绍清_shao | 来源:发表于2020-04-20 15:34 被阅读0次

值得参考的链接

iOS 事件传递&响应链

当前屏幕有一个用户事件时,系统会产生一个事件,交给当前应用的事件处理队列。

寻找能处理事件的View

视图会调用hitTest:withEvent:判断自己能不能处理这个事件。
不能处理的3种情况:
1.不允许交互:userInteractionEnabled = NO
2.隐藏:如果把父控件隐藏,那么子控件也会隐藏,隐藏的控件不能接受事件
3.透明度:如果设置一个控件的透明度<0.01,会直接影响子控件的透明度。alpha:0.0~0.01为透明。
能处理的情况:
父视图会调用子视图hitTest:withEvent:,就算事件点不在视图本身,且不会想上面3种情况下,是能处理这个事件的。并调用point(inside:with:)判断点是否在自己View上。

子视图调用hitTest:withEvent:顺序:
从最外层开始调用hitTest:withEvent:,如果找到了,不会再遍历本视图的hitTest:withEvent:

处理事件

调用touch方法,如果自身能处理,则响应事件不会继续往下传递。如果touch、中调用了super,上一个响应者会调用touch`。

如果当前这个view是控制器的view,那么控制器就是上一个响应者
如果当前这个view不是控制器的view,那么父控件就是上一个响应者

相关文章

  • iOS之事件的传递和响应机制

    iOS之事件的传递和响应机制

  • 初识iOS事情处理机制

    参考:史上最详细的iOS之事件的传递和响应机制-原理篇iOS触摸事件全家桶史上最详细的iOS之事件的传递和响应机制...

  • ios 事件传递和响应

    史上最详细的iOS之事件的传递和响应机制-原理篇iOS触摸事件传递响应之被忽视的手势识别器工作原理手势事件中can...

  • 深入浅出iOS事件机制

    深入浅出iOS事件机制事件传递:响应链事件传递响应链

  • iOS 响应链

    iOS开发 - 事件传递响应链iOS 响应者链,事件的传递事件传递之响应链Cocoa Touch事件处理流程--响...

  • 01进阶之路-UI视图

    1. 事件传递机制和响应者链条 学习链接 事件传递机制iOS中的事件可以分为3大类型 1 触摸事件 2 加速计...

  • iOS事件传递和视图响应

    iOS事件响应机制的事件传递流程 - (UIView *)hitTest:(CGPoint)point withE...

  • 响应者链

    史上最详细的iOS之事件的传递和响应机制Event Delivery: The Responder Chain

  • 事件传递和响应机制

    iOS 事件传递和响应机制 一.概述 APPs通过responder objects来接收和处理点击事件,resp...

  • iOS事件传递和事件响应机制

    这里主要讲解记录下用户触摸点击手机屏幕后产生的事件是如何派发传递的,如何查找到适合响应事件的第一响应者控件,以及找...

网友评论

      本文标题:iOS之事件的传递和响应机制

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