UI事件传递与响应

先了解下UIView与CALayer的关系

  • UIView为CALayer提供内容,负责处理触摸事件,参与响应链 ,内部的backgroundColor是对CALayer内部的backgroundColor的包装
  • CALayer显示内容contents,contents通过backing store显示出来,可以理解为显示出来的是bit位图

关于事件传递的两个方法

//返回事件响应的view
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
//判断点击位置是否在视图范围内
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event

事件的传递的流程,自下而上

1_meitu_1.jpg

hitTest: withEvent:系统内部实现

2.jpg

事件响应的流程,自上而下

3_meitu_2.jpg

视图的响应事件

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event;
- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event;
- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 马上又到毕业季了,我的大学,按照惯例会邀请已经工作的校友回学校给将要毕业的学弟学妹们讲讲社会上工作的事。不知不觉也...
    雨系阅读 557评论 2 4
  • 网上最近有一个很火的名词解释段子,对旅游二字做了诠释:旅游就是从自己活腻的了地方,跑到别人活腻了的地方,去花掉自己...
    城市的风景_1db2阅读 327评论 0 2
  • 初夏的夜里,风里飘来些栀子花的香味。 来看《无问东西》的人真不少,柳眉从电影院出来,穿过喧闹的人群,独自向停车坪走...
    萧萧风竹阅读 413评论 2 10
  • 一 2017年9月25日 晴 杭州东 有雨 记忆总是不可靠的,很多你以为记住的,很多你以为重要的...
    一江烟波事阅读 621评论 2 1