美文网首页
UI事件传递&响应

UI事件传递&响应

作者: Liuny | 来源:发表于2018-04-11 15:04 被阅读0次

UIView与CALayer的关系与区别

UIView为CALayer提供内容,以及负责触摸等事件,参与响应链
CALayer负责显示内容contents

image.png

视图事件传递

系统是如何找到最终响应的视图是C2?

事件传递流程图

图中的hitTest:withEvent其实是一个递归调用,UIWindow调用这个方法,这个方法会遍历所有的子View,子View又会调用自己的hitTest:withEvent方法,最终找到响应的view返回,如果没有找到,则由window响应。
倒序遍历:就是后添加的view先遍历。

//最终哪个视图响应这个事件,就返回哪个视图
-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
//用于判断点击的位置是否在当前视图内
-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event

事件传递相关的两个方法,在hitTest:withEvent方法中会调用pointInside:withEvent方法。

hitTest:withEvent系统处理流程

视图响应链

官网给出的事件响应链

如最开始的那幅图所示,点击了C2,事件响应传递顺序为:C2->B2->A->...->UIApplicationDelegate
如果最终传递到了UIApplicationDelegate还是没人去处理这个事件,那么就会忽略这个事件。

相关文章

  • UI事件传递&响应

    UIView与CALayer的关系与区别 UIView为CALayer提供内容,以及负责触摸等事件,参与响应链CA...

  • UI事件传递&响应

    说UI事件之前我们先看一下UIView&CALayer 联系 UIView 中属性lyaer其实就是CALayer...

  • UI事件传递&响应

    UIView和CALayer之间的关系和区别UIView和CALayer UIView实际上里面有的属性,一个CA...

  • UI事件传递&事件响应

    响应链工作原理 点击某一控件到其响应相关事件其实是分为两步:事件的传递与事件的响应 事件分发与传递:自上而下 事件...

  • iOS-UI部分知识点整理

    UITableView相关 事件传递&视图响应 系统的UI事件传递机制是怎么样的 ? 使UITableView滚动...

  • 面试知识集-UI事件传递,图像显示,性能优化,离屏渲染

    UIView与CALayer关系 事件传递与视图响应链 事件传递与视图响应链 图像显示原理 UI卡顿掉帧分析及解决...

  • OC总结篇 - UI视图

    UI视图 - 图像显现原理和滑动优化UI视图 - UI事件传递及视图响应链UI视图 - UITableView重用...

  • UI事件传递与响应

    先了解下UIView与CALayer的关系 UIView为CALayer提供内容,负责处理触摸事件,参与响应链 ,...

  • iOS体系

    UI视图 UITableView 事件传递&视图响应 图像显示原理 UI卡顿、掉帧 UI绘制原理/异步绘制 离屏渲...

  • UI响应链,事件分发,以及修改响应控件

    UI响应链,事件传递 一、事件分发(为了寻找响应事件的控件) 1.当我们点击屏幕的时候,系统会将我们的点击事件添加...

网友评论

      本文标题:UI事件传递&响应

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