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

爱站网反链查询郑州百度推广公司电话

爱站网反链查询,郑州百度推广公司电话,方维网站建设,下载百度到桌面背景 对于身处中小公司且业务不怎么复杂的程序员来说#xff0c;很多技术不常用#xff0c;你可能看过很多遍也都大致了解#xff0c;但是实际让你讲#xff0c;不一定讲的清楚。你可能说#xff0c;我以独当一面#xff0c;应对自如了#xff0c;但是技术的知识甚多很多技术不常用你可能看过很多遍也都大致了解但是实际让你讲不一定讲的清楚。你可能说我以独当一面应对自如了但是技术的知识甚多我们常用的只是十之一二甚至更少。这么多知识怎么更好的理解和学习如果实操的场景少推荐通过AI对话不断的提问然后对他的回答进行反复的验证校准加深理解。 今天就住要讲一下iOS的事件传递和响应 事件传递和响应 1、概述 事件传递过程从application传递到最上层view如下图 事件传递过程 事件响应处理过程从最上层view开始向下传递与事件传递方向相反响应链 事件响应过程 2、事件传递细节  当用户点击页面的某个位置时application将触发事件传递 从application到window到ViewController到view、subview如果某个view可以处理这个事件则继续查找其子view查找子view的时候从最后添加的开始检查一旦某个子view可以处理这个事件则停止遍历子view重复此过程。如果子view都不可处理事件则返回自己事件查找结束。 什么条件算是“可以处理这个事件”需要同时满足以下条件 view没有隐藏hidden  NO 允许交互userInteractionEnabled YES 透明度alpha 0.01注意等于0.01的时候就已经无法响应事件了 pointInside: withEvent:返回YES也就是说view覆盖区域包含点击位置。也可以重写函数指定一定范围内的点击都算到自己身上常用于扩大按钮的点击范围。 所以传递过程的代码大致如下 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {// 检查视图是否满足基本条件if (!self.isUserInteractionEnabled || self.isHidden || self.alpha 0.01) {return nil;}// 检查触摸点是否在视图范围内if (![self pointInside:point withEvent:event]) {return nil;}// 从后往前遍历子视图NSInteger count self.subviews.count;for (NSInteger i count - 1; i 0; i--) {UIView *subview self.subviews[i];// 将触摸点转换到子视图的坐标系中CGPoint subPoint [self convertPoint:point toView:subview];// 递归调用子视图的 hitTest:withEvent: 方法UIView *hitView [subview hitTest:subPoint withEvent:event];if (hitView) {return hitView;}}// 如果没有子视图能处理事件则返回自身return self; } 事件传递结束后这个事件的响应链就定下来了响应链之外的view就没有机会处理事件了即使他可以处理也不行。这里解释一下根据前面提到的传递规则对于同一个view的子view最后添加的拥有绝对的优先权如果他能处理这个事件则即使他不处理这个事件他的兄弟view也么有机会处理。 3、事件响应 事件传递结束响应链被确认则进行事件响应阶段 从最后的view开始确认是否处理了事件如果处理了则停止向下传递过程结束 事件响应 首先根据处理方式的不同可分为3种 UIControl如按钮通过 target-action 机制直接将事件传递给控件手势识别器给view添加gestureRecognizer系列识别绑定事件回调触摸事件链通过view的touchesBegan、touchesEnded来拦截处理的自带事件 每种处理方式有各自的传递链条不会串行其中 UIControl如果在最上层且“可以处理这个事件”则父视图的其他方式touche\gesture会被阻断。应该他的内部实现上将touche和gesture都阻断了。手势识别器gestureRecognizer如果子view添加了手势则点击子view的时候父view还会收到touchesBegan、touchesEnded的回调也就是说touche和gesture会同时触发。如果父子view同时设置了手势比如都是tapGesture,则子view会阻断手势事件的传递父view不会收到点击事件。触摸事件链如果想中断则在touchesBegan中不调用super即可中断。如果不想中断则实现touchesBegan处理事件的同时可继续调用super响应链的其他元素就还有机会收到事件和处理事件。 以上就是我对事件传递和响应的理解其重点就是明白传递过程传递的条件响应链 那些容易让误解的词语 1、很多文章提到传递方向“从上到下”、“从下到上”这样子讲并不知道到底从哪到哪传递。本文结合了图片层级做了说明希望大家能够明白。 2、查找响应者的过程很多文章提到“如果view不能处理事件”则...这种说法我是不赞同的如果view不能处理事件那根本就不会传给他更别提进入响应链了。这里适合的词应该是“不处理”或者更恰当点理解是“不拦截”。我们都知道通过touchesBegan处理事件的时候如果你调用了super方法事件还会继续传递这时候就可以有多个view同时响应事件
http://www.w-s-a.com/news/337458/

相关文章:

  • 网店的网站设计方案济南手机建站价格
  • 网站做了301重定向域名会自动跳转吗唐山地方志网站建设
  • 学校网站建设说明书海南省建设执业资格注册管理中心网站
  • 东莞哪家网站建设好网站风格设定
  • 自驾游网站模板搭建wordpress步骤
  • wordpress视频网站上传视频提升学历是什么意思
  • 江西省城乡建设厅建设网站浙江建设
  • 网站联系我们页面临平做网站
  • 如何用网站做cpa交互比较好的网站
  • 一家只做特卖的网站wordpress修改模板教程
  • 与恶魔做交易的网站成都到西安高铁票价
  • 太原网站制作哪家便宜长春昆仑建设股份有限公司网站
  • 优质做网站价格设计手机商城网站建设
  • 高校网站建设制度无锡网站建设排名
  • 做网站的软件wd的叫啥无锡公司网站建设服务
  • 网站建设一般需要多久网站服务器基本要素有哪些
  • 大连开发区网站开发公司免费网站建设哪个好?
  • 关于建设门户网站的通知海曙区建设局网站
  • 韩国建设部网站温州企业网站制作
  • 苏州网站建设优化贵州网站建设lonwone
  • 网站建设与推广方案模板网站建设教程搭建浊贝湖南岚鸿给力
  • 网站建设内部下单流程图昆明网站制作公司
  • 手机网站焦点图在线外链推广
  • 做静态页面的网站中国建设银行河南省分行网站
  • 镇平县两学一做专题网站佛山家居网站全网营销
  • 做网站的需求wordpress图片怎么居中
  • 网站开发的技术流程图抖音seo排名优化软件
  • dedecms做电商网站得物app官方下载安装
  • python做网站教程微网站 举例
  • 百度喜欢什么样的网站如何引用网站上的资料做文献