首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在iOS 14.0中对'hitTest()‘进行了修改

在iOS 14.0中对'hitTest()'进行了修改。'hitTest()'是UIKit框架中的一个方法,用于确定触摸事件发生在视图层级结构中的哪个视图上。

在iOS 14.0中,'hitTest()'方法的行为发生了变化。之前,当事件发生时,'hitTest()'方法会从视图层级结构的根视图开始递归地向下查找响应事件的最佳视图。而在iOS 14.0中,'hitTest()'方法只会在最顶层的可交互视图中查找事件的目标视图。

这种修改的主要目的是为了更好地支持新的交互方式,例如全面屏设备上的手势操作。通过只在顶层视图中进行'hitTest()'操作,可以减少不必要的计算,提高性能,并且更好地适应新的交互模式。

尽管在iOS 14.0中对'hitTest()'进行了修改,但它仍然是处理触摸事件的重要方法。开发者可以通过重写'hitTest()'方法来自定义事件的响应逻辑,使其更符合自己的需求。

对于开发者来说,了解'hitTest()'的修改对于在iOS 14.0及更高版本上进行视图交互的开发工作至关重要。在使用'hitTest()'方法时,开发者应该注意遵循新的行为规范,并根据需要进行适当的调整和优化。

对于与云计算相关的应用场景,'hitTest()'方法可能用于实现移动设备上的图形界面交互,例如触摸事件的识别和处理。腾讯云提供的相关产品中,可能会涉及到与移动开发相关的解决方案,例如移动应用开发平台、移动测试平台等。您可以通过腾讯云官方网站了解更多相关产品和详细信息。

请注意,上述回答仅供参考。由于问题的广泛性和复杂性,可能还有其他方面的内容需要考虑。对于更详细和具体的信息,建议查阅相关文档或咨询专业人士。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS 中的事件响应

苹果回复[2] hitTest函数中拿到的 UIEvent 对象,其allTouches属性为空,等到下文所提到的发送事件时,sendEvent函数中拿到的 UIEvent 对象,其allTouches...,且不会修改 UIGestureRecognizer 的状态机;(时机 手势touchesBegan前) 使用二个方法会等待一段时间, UIGestureRecognizer 识别手势转换状态时调用...UITouchesEvent 通过上文列举的UIEvent属性,我们发现其所有的属性都是只读以防止被修改事件响应的流程中,实际上传递的对象是UIEvent的子类UITouchesEvent。...UIControl 事件通知方式 UIControl作为UIResponder的派生类,其也具有UIResponder 的touch系列四个方法,但其内部这四个方法进行了重写, touchBegin...UIControl重写touch系列四个方法时,其方法内部不会调用父类的方法,也就意味着UIControl对事件响应进行了阻断,使事件不会流向nextResponder。

2.6K11

ios Hit-Test

要回答这个首先我们来思考另外一个问题:当我们点击界面的时候,iOS是如何知道我们点击的是哪一个View? 其实这个过程就是由Hit-Test来完成的。...iOS中,Hit-Test的作用就是找出这个触摸点下面的View是什么,HitTest会检测这个点击的点是不是发生在这个View上,如果是的话,就会去遍历这个View的subviews,直到找到最小的能够处理事件的...gaitubao_com_459x614_gaitubao_com_197x264.jpeg 用户点击View D,hit-test view流程如下: A是UIWindow的根视图,因此,UIWindow对象会首先A...进行hit-test; 显然用户点击的范围是A的范围内,因此,pointInside:withEvent:返回了YES,这时会继续检查A的子视图; B view分支的pointInside:withEvent...[856:19095898] 点击了:AView 如果用户点击超出BView 范围的按钮的点击事情也有用,此时就要用Hit-Test,我们修改一下BView的代码 B View 代码如下 #import

1.3K40

史上最详细的iOS之事件的传递和响应机制-原理篇

iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接受并处理事件,我们称之为“响应者对象”。以下都是继承自UIResponder的,所以都能接收并处理事件。...2.UIApplication会从事件列中取出最前面的事件(此处假设为触摸事件A),把事件A传递给应用程序的主窗口(keyWindow)。...但是,建议父控件的hitTest:withEvent:中返回子控件作为最合适的view! 原因在于自己的hitTest:withEvent:方法中返回自己有时候会出现问题。...touchedEnded…3>这些touches方法的默认做法是将事件顺着响应者链条向上传递(也就是touch方法默认不处理事件,只传递事件),将事件交给上一个响应者进行处理 4.2.响应者链条示意图 响应者链条:iOS...iOS中响应者链的关系可以用下图表示: ?

10.9K70

iOS 事件体系知识及原理小记

基本知识点: 0 UITouch 当每一个指尖屏幕上触发一次触摸事件时,系统就会生成对应一个UITouch对象,用于记录当前触摸的状态,主要包含运动相位、位置、大小、运动、力度(iOS9)等数据;...; // 获取当前坐标 - (CGPoint)previousLocationInView:(nullable UIView *)view; // 获取上一次坐标 1 UIEvent iOS系统中一个...(3_0); // 四种事件类型 @property(nonatomic,readonly) UIEventSubtype  subtype NS_AVAILABLE_IOS(3_0); // 各个大类型中再细化区分...*> *allTouches; // 当前事件触发时的所有UITouch对象 2 UIResponder 事件响应者(UIResponder)的查找与事件的响应: 响应者(responder)的概念:iOS...:withEvent:; 如果subView的hitTest:withEvent:有返回,则返回该返回; 如果subView的hitTest:withEvent

1.2K90

iOS 事件传递和处理

前言 iPhone拥有很好的用户交互体验,这源于iOS系统交互事件的高效处理和高优响应; App开发者处理用户交互非常便捷,这源于iOS系统和UIKit用户操作做了封装和默认处理; 本文围绕iOS...IOHIDEvent是iOS系统对事件的封装,感兴趣可以看源码IOHIDEvent.h和IOHIDEvent.cpp(HID是Human Interface Device的缩写)。...主线程同样启动时监听source0,接收eventfetch-thread线程发送的IOHIDEvent数据,再封装成UIEvent,根据UIEvent的类型判断是否需要启动hitTest。...UIKit会从UIWindow开始寻找目标视图,先调用UIWindow的hitTest方法询问是否有响应的视图,hitTest方法首先会先调用UIWindow的pointInside方法询问是否点击范围内...UIWindow是UIView的子类,UIView的hitTest方法实现和上述过程一致。 思考: UIView调用子视图hitTest时,是先调用哪些子视图?

1.4K20

事件分发机制

前言总结:     iOS的事件可以大概分为三种类型,我们会对这三种类型分别做一些介绍说明,先总结一下:     1.  Milti-Touch Events 触控事件:单点、多点、手势。    ...收到hitTest消息, 先调用RootView的pointInside:withEvent方法,判断点击的点是不是RootView中,上面的例子是RootView中,所以pointInside:...现实中的应用:      以前有仿写过闲鱼APP的标签栏,标签的样式看下面的图片,在这里我们就得处理一下中间的发布按钮,要是不做一些处理,你的点击事件“发布”按钮找出标签栏的部分是没有效果的。...上面就是hitTest的一些概念和简单的使用,其实它能做的事还是挺多的,我把自己学习的笔记链接全都整理出来给; iOS事件分发机制(一) hit-Testing 技术哥 iOS事件分发机制(二)The...Responder Chain 技术哥 iOS触摸事件处理 史上最详细的iOS之事件的传递和响应机制 Motion Events  和  Remote Control Events:     Motion

1K80

iOS 小技能: Responder Chain(响应者链)【上篇】

Responder Chain: I 响应者对象 iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件,我们称之为“响应者对象”。...一个事件响应者的完成主要经过两个过程:hitTest方法命中视图和响应者链确定响应者。...4.1.命中测试 命中测试(hitTest)主要会用到视图类的hitTest函数和pointInside函数。...其中,前者用于递归寻找命中者,后者则是检测当前视图是否被命中,即触摸点坐标是否视图内部。...命中检测具体迭代的过程为:如果触摸点在当前视图内,那么递归当前视图内部所有的子视图进行命中检测;如果不在当前视图内,那么返回NO停止迭代。这样最终会确定屏幕上最顶部的命中的视图元素,即命中者。

1.1K30

IOS开发系列——UIView专题之四:事件分发机制篇【整理,部分原创】

4.1hitTest iOS事件分发机制(一)hit-Testing http://suenblog.duapp.com/blog/100031/iOS事件分发机制(一)%20hit-Testing...iOS中,hit-Testing的作用就是找出这个触摸点下面的View是什么,HitTest会检测这个点击的点是不是发生在这个View上,如果是的话,就会去遍历这个View的subviews,直到找到最小的能够处理事件的...的runtime能力,hitTest执行之前,插入了一个方法。...iOS中很多类型的事件分发,都依赖于响应链;响应链中,所有对象的基类都是UIResponder,也就是说所有能响应事件的类都是UIResponder的子类,UIApplication/ UIView/...如果中断了响应链,那么所有链上的nextResponder都不会得知有事件发生,iOS也提供了这个方法,其实很简单: 我们重写TouchesEvents的时候,如果不想让响应链继续传递,就不调用super

64510

iOS UIButton 点击无响应的解决办法

前言 日常开发中我们经常和按钮打交道,但是有时候会碰到比较难处理的问题,就是按钮不响应点击事件,这时候我们需要从下面几方面排查 按钮不响应的原因 1、按钮添加到了一个没有开启用户交互的父View上,...数组的末尾向前遍历,直到有子视图返回非空对象或者全部子视图遍历完毕; 若第一次有子视图返回非空对象,则hitTest:withEvent:方法返回此对象,处理结束; 如所有子视图都返回非,则hitTest...所以我们可以返回nil时进行处理,因为这个时候button是父View外的 //返回一个view来响应事件 - (UIView *)hitTest:(CGPoint)point withEvent:...总结 以上所述是小编给大家介绍的iOS UIButton 点击无响应的解决办法,希望大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。...在此也非常感谢大家ZaLou.Cn的支持!

3.3K10

事件传递、响应者链条

一、事件 iOS里有三种事件:触摸(touch)、加速(motion)、远程控制 UIResponder里,有以下事件处理 // 触摸事件 - (void)touchesBegan:(NSSet...二、寻找响应者(UIResponder)-事件传递 响应者:继承UIResponder的对象称之为响应者对象,能够处理touchesBegan等触摸事件 当一个Touch事件产生时,要先找到响应者,iOS...通过Hit-Test机制来寻找响应者,每一个UIView(继承自UIResponder)都有以下的方法 - (nullable UIView *)hitTest:(CGPoint)point withEvent...UIApplication和UIWindow通过sendEvent:方法传递事件 UIWindow 之后会通过hitTest:withEvent:方法寻找触碰点所在的视图 hitTest:withEvent...super的touches方法),从之前往下走的路线往上回传,在其中加入了Viewtroller来处理 如果view的控制器存在,就传递给控制器;如果控制器不存在,则将其传递给它的父View 视图层次结构的最顶级视图

87010

UI篇-UIResponder之事件传递和响应精析

iOS中的几种常见事件 ? 这篇文章只讨论触摸事件。...分别有多点触控、摇一摇以及远程操作(iOS之后新增了3DTouch事件类型)。一个用户点击事件处理过程中,UIEvent对象是唯一的。...方法内部会调用pointInside方法点击点进行是否在当前视图bounds内进行判断,如果超出bounds,hitTest则返回nil。...响应者链:由一系列“下一个响应者”组成 其顺序如下: 1.iOS系统处理事件时,通过UIApplication对象和每个UIWindow对象的sendEvent:方法将事件以消息的形式分发给具体处理此事件的第一响应者...hitTest: withEvent:依次获取处理这个事件的所有视图对象,获取所有的可处理事件对象后,开始调用这些对象的touches回调方法 自定义View中重写 touchesBegan方法 -

2.4K30

记使用WKWebView修改user-agentiOS 12踩的一个坑

随着摒弃了iOS老系统的支持,项目也开始逐步开始转向WKWebView,本想着新系统应该能填一些WKWebView的坑,结果发现还是还是坑不断,这次iOS12又遇到一个神坑。...iOS 10/11上面,这段代码执行都好好的,并且也没什么问题。结果现在在iOS 12beta版本里面突然不生效了,自己追加的userAgent没有添加成功。...,这个追加的demo工程里有展示: 1. user-agent is Optional("Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X)...iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko)) 所以,这种设置userAgent的方法iOS...所以这应该是苹果iOS12系统的一个bug。这里需要换一种方式来设置userAgent了。 全局更改的话可以AppDelegate里面把customAgent写到UserDefault里面。

9.7K50

上期面试题答案

面试题 题一:多线程的应用 一、共享资源 共享资源 : 就是内存中的一块资源同时被多个进程所访问,而每个进程可能会对该资源的数据进行修改 问题 : 如果线程A 访问了某块资源 C,并且修改了其中的数据...,此时线程B 也访问了资源C,并且也 C 中的数据进行了修改;那么等到线程A 和线程B 执行结束后,此时,资源C 中的数据就并不是最初的设置了 二、线程通信 通常,一个线程不应该单独存在,应该和其他线程之间有关系...• hitTest方法:首先会通过调用自身的 pointInside 方法判断用户触摸的点是否在当前对象的响应范围内,如果 pointInside 方法返回 NOhitTest方法直接返回 nil...• 如果pointInside 方法返回 YES hitTest方法接着会判断自身是否有子视图.如果有则调用顶层子视图的 hitTest 方法直到有子视图返回 View • 如果所有子视图都返回...nil hitTest 方法返回自身.

29110

IOS触摸事件分发机制详解

怎么一个页面处理手绘、表情拖动放缩、文本编辑三种消息 阅读本文,你会明白两个问题:IOS如何找到响应者、响应者是如何做出响应,明白这两个问题你就能解决类似上述的疑难杂症。...通过控制Hit-test view 、人为干预响应者能否这一事件作出响应最终来控制触摸事件的分发机制。...IOS把屏幕监测到的点击事件用UITouch对象来表示,最终被封装成UIEvent作为事件的消息载体响应链上传递。...,如果在view的边界范围内,则返回YES,然后,子视图中递归调用 hitTest:withEvent: 。...响应链序列iOS确定一个事件并将它传递给initial object(通常是view)时开始。所以initial view有处理事件的第一个机会。

3.5K90

史上最详细的iOS之事件的传递和响应机制-实践篇

前言 之前我已经通过《史上最详细的iOS之事件的传递和响应机制-原理篇》比较详细的介绍过了事件的响应和传递的一些原理。如果说上篇是原理性文章,那么本篇文章更偏重于实践。...如果对此不太了解,请阅读笔者的《史上最详细的iOS之事件的传递和响应机制-原理篇》。 ? 视图层次 如上图,视图层次结构:白色->红色->绿色。...所以,我们可以hitTest:withEvent:方法里面强制返回父控件为最合适的view,也就是返回红色的view。...注意,不能够重写父控件的hitTest:withEvent:方法,也就是不能够重写红色的view的hitTest:withEvent:方法。...此处我们点击的点是绿色的view的上部分,这个点没有红色的view的坐标系上。

8.4K20

iOS面试题:事件传递和响应机制

,也不管触摸点在不在这个控件上,事件都会先传递给这个控件,随后再调用hitTest:withEvent:方法 2.如果hitTest:withEvent:方法中返回nil,那么调用该方法的控件本身和其子控件都不是最合适的...view,也就是自己身上没有找到更合适的view。...…touchedEnded… 3 这些touches方法的默认做法是将事件顺着响应者链条向上传递(也就是touch方法默认不处理事件,只传递事件),将事件交给上一个响应者进行处理 4.2 响应者链条 iOS...iOS中响应者链的关系可以用下图表示: 响应者对象 能处理事件的对象,也就是继承自UIResponder的对象 作用 能很清楚的看见每个响应者之间的联系,并且可以让一个事件多个对象处理。...*** 更多:iOS面试题合集

1.2K10
领券