事件传递和响应:
UIView和CALayer的联系
UIView中的layer就是CALayer类型,UIView的backgrouColor是对CALayer同名属性的包装,UIView的显示是由CALayer的contents来决定的。contents对应的是backing store,是一个bitmap类型的位图。最终显示在屏幕上的控件,都可以理解为bitmap类型的位图。UIView和CALayer的区别
UIView为CALayer提供显示的内容,以及处理触摸等事件,参与响应链;
CALayer负责内容显示contents
这么设计体现了单一职责原则。
1.事件传递流程:
点击屏幕 -> 事件传递给UIApplication ->传给UIWindow
UIWindow会根据hittestWithEvent方法来返回最终响应的视图。
UIWindow先根据pointInside方法来判断点击事件是否在UIWindow范围内,如果在范围内,则倒序遍历UIWindow子视图(最后添加的子视图先被判断)来查找响应view。
2.事件响应流程:
其他文章:
https://blog.csdn.net/ios_xumin/article/details/116044182