当前位置: 首页 > news >正文

网站源码在线下载seo站内优化教程

网站源码在线下载,seo站内优化教程,武汉的网站建设公司,十八大禁用黄app软件入口响应者链 iOS事件的3大类型 Touch Events(触摸事件)Motion Events(运动事件,比如重力感应和摇一摇等)Remote Events(远程事件,比如用耳机上得按键来控制手机) 触摸事件 处理触摸事件的两个步骤 寻找事件的最佳响应者事件的响应在响应链中的传递 寻…

响应者链

iOS事件的3大类型

  • Touch Events(触摸事件)
  • Motion Events(运动事件,比如重力感应和摇一摇等)
  • Remote Events(远程事件,比如用耳机上得按键来控制手机)

触摸事件

处理触摸事件的两个步骤

  • 寻找事件的最佳响应者
  • 事件的响应在响应链中的传递

寻找事件的最佳响应者

当我们触摸屏幕的某个可响应的功能点后,最终都会由UIView或者继承UIView的控件来响应。

每个UIView对象都有一个 hitTest: withEvent: 方法,这个方法是Hit-Testing过程中最核心的存在,其作用是询问事件在当前视图中的响应者,同时又是作为事件传递的桥梁。

image-20231217040452795

当手指接触屏幕,UIApplication接收到手指的触摸事件之后,就会去调用UIWindowhitTest: withEvent:方法

hitTest: withEvent:方法中会调用pointInside: withEvent:去判断当前点击的point是否属于UIWindow范围内,如果是,就会以倒序的方式遍历它的子视图,即越后添加的视图,越先遍历

子视图也调用自身的hitTest: withEvent:方法,来查找最终响应的视图

视图响应事件的条件:

  • 允许交互: userInteractionEnabled = YES
  • 禁止隐藏:hidden = NO
  • 透明度:alpha > 0.01
  • 触摸点的位置:通过 pointInside: withEvent:方法判断触摸点是否在视图的坐标范围内

事件的响应在响应链中的传递

经历Hit-Testing后,UIApplication已经知道事件的最佳响应者是谁了,接下来要做的事情就是:

  • 将事件传递给最佳响应者响应
  • 事件沿着响应链传递

事件传递给最佳响应者

最佳响应者具有最高的事件响应优先级,因此UIApplication会先将事件传递给它供其响应。

UIApplication中有个sendEvent:的方法,在UIWindow中同样也可以发现一个同样的方法。UIApplication是通过这个方法把事件发送给UIWindow,然后UIWindow通过同样的接口,把事件发送给最佳响应者。

当事件传递给最佳响应者后,响应者响应这个事件,则这个事件到此就结束了,它会被释放。假设响应者没有响应这个事件,那么它将何去何从?事件将会沿着响应链自上而下传递。

注意: 寻找最佳响应者中也说到了事件的传递,与此处所说的事件的传递有本质区别。上面所说的事件传递的目的是为了寻找事件的最佳响应者,是自下而上(父视图到子视图)的传递;而这里的事件传递目的是响应者做出对事件的响应,这个过程是自上而下(子视图到父视图)的。前者为“寻找”,后者为“响应”。

事件沿着响应链传递

在UIKit中有一个类:UIResponder,它是所有可以响应事件的类的基类。UIApplication,UIViewController和UIView都是继承自它,都有一个 nextResponder 方法,用于获取响应链中当前对象的下一个响应者,也通过nextResponder来串成响应链

响应者对于事件的拦截以及传递都是通过 touchesBegan:withEvent: 方法控制的,该方法的默认实现是将事件沿着默认的响应链往下传递。

响应者对于接收到的事件有3种操作:

  • 不拦截,默认操作 事件会自动沿着默认的响应链往下传递
  • 拦截,不再往下分发事件 重写 touchesBegan:withEvent: 进行事件处理,不调用父类的 touchesBegan:withEvent:
  • 拦截,继续往下分发事件 重写 touchesBegan:withEvent: 进行事件处理,同时调用父类的 touchesBegan:withEvent: 将事件往下传递

总结

触摸事件先通过自下而上(父视图–>子视图)的传递方式寻找最佳响应者,

然后以自上而下(子视图–>父视图)的方式在响应链中传递。

http://www.yidumall.com/news/30146.html

相关文章:

  • 聊城找个人做网站解封后中国死了多少人
  • 教学网站开发网络推广员
  • 北京正规网站建设公司百度网页推广怎么做
  • 广州高端品牌网站建设电脑培训班在哪里有最近的
  • 梨树县交通建设网站网页链接制作生成
  • 深圳网站建设ppchsj网店推广平台有哪些
  • 学校网站建设的申请seo网站推广是什么
  • 高端网站开发成本百度联盟项目看广告挣钱
  • 网站建设代理政策hao123影视
  • 丹灶网站设计百度网盟推广
  • 个人如何做网站软件武汉网站维护公司
  • 企商网站建设百度推广电话客服24小时
  • 公司做网站的目的网络营销步骤
  • 佛山营销手机网站建设南京seo网络推广
  • 淅川做网站企业推广公司
  • 郑州企业网站建站模板app拉新平台有哪些
  • Wordpress福利资源模板亚马逊关键词优化怎么做
  • 新闻网站开发php代码简单的个人主页网站制作
  • 网站制作方案报价优化手机流畅度的软件
  • wordpress文章摘要调用百度seo排名在线点击器
  • 网站运营维护方案2022世界足球排行榜
  • 政府网站建设排版产品经理培训哪个机构好
  • 腾讯 云上做网站教程免费发软文的网站
  • 域名出售后被用来做非法网站百度热门搜索排行榜
  • 重庆做商城网站建设关键路径
  • 建站平台做的网站google线上平台推广方式
  • 邵阳 做网站公司2023全民核酸又开始了
  • 网站建设 知识库百度推广投诉电话客服24小时
  • 标准网站建设手机百度高级搜索入口在哪里
  • 北京微网站建设软文营销的步骤