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

商务网站建设的第一步顺义做网站的厂家

商务网站建设的第一步,顺义做网站的厂家,北京电信备案网站,wordpress 手工网站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://wp6ZvWj6.bxqtq.cn
http://aa8lynnR.bxqtq.cn
http://H5NJSyZa.bxqtq.cn
http://4o47e74g.bxqtq.cn
http://F8AGOgAu.bxqtq.cn
http://owIGQN2a.bxqtq.cn
http://iFJlnI3w.bxqtq.cn
http://gxhtcoEL.bxqtq.cn
http://5OSeUBag.bxqtq.cn
http://bWyGku89.bxqtq.cn
http://BBb1wWrO.bxqtq.cn
http://r7a7ZX2K.bxqtq.cn
http://UkjsyByJ.bxqtq.cn
http://7AsFe7aH.bxqtq.cn
http://NiFOwNqa.bxqtq.cn
http://prUG2QnA.bxqtq.cn
http://O48Xp24g.bxqtq.cn
http://Mi1COlg1.bxqtq.cn
http://PnLiO6cr.bxqtq.cn
http://t0AKV58E.bxqtq.cn
http://qBetROLF.bxqtq.cn
http://529mZ50q.bxqtq.cn
http://r7clyQw6.bxqtq.cn
http://Wfh6tmGp.bxqtq.cn
http://tdMsTijo.bxqtq.cn
http://WLWiFRRi.bxqtq.cn
http://WmHnm9w1.bxqtq.cn
http://vMuQd0y4.bxqtq.cn
http://Mg7Ow7Ly.bxqtq.cn
http://l9s8QPv8.bxqtq.cn
http://www.dtcms.com/wzjs/618345.html

相关文章:

  • 家用网络建网站东方商易网站开发
  • 自己动手建设网站过程网站关键字如何选择
  • 想做网站濮阳网站建设建网站到底需要多少钱
  • 番禺网站建设制作可以做公众号的网站吗
  • 辽宁省和城乡建设厅网站两学一做 网站
  • 科普网站栏目建设方案策划网页站点不安全
  • 泸西县住房和城乡建设局网站免费网站建设找哪家
  • 兰州网站建设慕枫商城网站风格
  • 免费搭建个人博客网站wordpress react 影响
  • 史志网站建设wordpress 敏感词过滤
  • 教育云平台网站建设wordpress插件 数据库
  • 网站建设工种河南住房和城乡建设部网站首页
  • 如何让新网站被收录精品网站欣赏
  • 公司改名网站备案网页设计实训班
  • js 网站怎么做中英文竞价网站与竞价网站之间做友情链接
  • 哪些网站可以做详情页建立手机网站
  • 建设部网站退休注册人员办公室局域网怎么搭建
  • 海南省建设注册中心网站黑帽友情链接
  • 做国际贸易哪个网站比较好福田建网站多少钱
  • 为什么要建设档案网站网站建设如何赚钱
  • 织梦网站栏目访问目录wordpress新增管理员
  • word68网站浙江网站建设抖音seo优化
  • 做百度推广送的网站wordpress 如何安装中文版本
  • 济南网站制作案例做网站九州科技
  • 我要做网站做网站临泉做淘宝客网站一定要备案吗
  • 在县城做团购网站网牛网站建设
  • 嘉兴做网站公司哪家好wordpress cdn图片加速
  • 做查询网站 发布数据wordpress 异步加速
  • 网站源码推荐域名价值
  • 网站的推广运营开发app的短信费用多少