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

备案时网站名称上海网站制作库榆

备案时网站名称,上海网站制作库榆,网站关键字统计,手机软件商城Hittest 机制原理 hitTest的原理就是,当我们点击的时候,会触发 window的 hittest方法,在该方法中会首先使用point inside方法判断 点击的地方是否在window范围内,如果在的话,就倒序遍历姿子视图,然后将poi…

Hittest 机制原理

hitTest的原理就是,当我们点击的时候,会触发 window的
hittest方法,在该方法中会首先使用point inside方法判断
点击的地方是否在window范围内,如果在的话,就倒序遍历姿子视图,然后将point转换为相对于子视图的point,然后在子视图再执行hittest,里面执行同样的流程。如果不在window范围内的话,就返回一个nil
这里写下实现逻辑

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{if (self.hidden == NO || self.alpha < 0.05 || self.userInteractionEnabled == NO) {//1.当满足这几个条件时,直接丢弃touch事件,不再向下分发。return nil;}else{if (![self pointInside:point withEvent:event]) {//2.如果点击point在视图之外,丢弃return nil;}else{//3.分发给子视图if (self.subviews.count > 0) {for (UIView *subView in self.subviews) {UIView *hitTestSubView = [subView hitTest:point withEvent:event];return hitTestSubView;}}else{return self;}}}
}

实际应用

扩大点击范围

重写 hitTest 方法,通过UIEdgeInsetsInsetRect 方法生成一个新的frame,然后判断point是否在rect里面

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{CGRect rect = UIEdgeInsetsInsetRect(self.bounds, self.expandEdgeInset);if (CGRectContainsPoint(rect, point)) {return self;}return [super hitTest:point withEvent:event];
}

子视图超出父视图可点击

重写 hitTest 方法 在里面不执行 point inside方法(系统默认是要执行的,因为要判断点击的点是否在自己范围内)

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{CGPoint pointInSubbutton = [self convertPoint:point toView:self.subButton];if ([self.subButton hitTest:pointInSubbutton withEvent:event]) {return [self.subButton hitTest:pointInSubbutton withEvent:event];}return [super hitTest:point withEvent:event];
}

其实从上面的逻辑来看,不管我们是扩大点击范围,还是子视图超出范围可以点击,
都是去掉了系统hitest方法中的point inside 方法

http://www.yayakq.cn/news/837823/

相关文章:

  • 中国建设工程网站投标phpcms校园网站
  • 网站功能设计的内容浙江网站设计公司
  • 邯郸做wap网站六安电商网站建设价格
  • 哪些人做数据监测网站用软件做的网站权限管理
  • 北京医疗网站建设公司排名网站要钱怎么
  • 访客浏览网站 网站怎么跟踪网站建设如何添加歌曲
  • 不要域名能建网站么上海专业网络营销
  • 广州市门户网站建设品牌建设网站论坛都需要哪些工具
  • 创建网站的向导和模板什么是网站制作app
  • 手机建网站推广虚拟主机安装wordpress
  • 网站导航条模板成免费crm特色学生版的特点
  • 杭州cms建站模板下载织梦做的网站后台登录
  • 网站建设的安全措施2345网址大全电脑版
  • 怎样做后端数据传输前端的网站wordpress商业源码
  • 高唐做网站建设公司吉恩聊城网站建设
  • 个人网站管理系统fireworks做网站
  • 东莞做网站费用微页制作网站模板下载
  • jsp网站开发环境配置网站开发猪八戒
  • 做网站需要多少钱 做顺企网我做网站
  • wordpress 后台 修改360平台怎么做网站优化
  • 猪八戒网做网站怎么样海南住房和城乡建设网站
  • 俄罗斯网站模版公司起名生成器
  • 网站素材库免费手表网站建设规划书
  • 站酷网设计素材制作网页最多的图片格式
  • dedecms网站后台很卡网站建站金融模板
  • 做一个企业网站需要多长时间wordpress运行目录
  • 无锡网络公司可以制作网站有做门窗找活的网站吗
  • 甘肃省级建设主管部门网站国内比较牛的网站建设
  • 网站内容百度不收录营销型网站建设ppt模板下载
  • 品牌网站建设有那两种模式东莞朝阳网站建设