gpt4 book ai didi

iphone - 什么时候touchesBegan变成touchesMoved?

转载 作者:行者123 更新时间:2023-12-03 18:23:36 25 4
gpt4 key购买 nike

当您在 iPhone 触摸屏上拖动手指时,它会以良好的常规 60Hz 生成 touchesMoved 事件。

但是,从初始 touchesBegan 事件到第一个 touchesMoved 的转换不太明显:有时设备会等待一段时间。

还在等什么?更大的时间/距离增量?事件中还需要更多接触吗?

有人知道吗?

重要的是,后续手指不会发生这种延迟,这使得第一次触摸处于明显的劣势。对于需要精确输入的应用程序(例如游戏和乐器)来说,这是非常不对称的坏消息。

查看此错误/现象的实际情况

  1. 慢慢将 iPhone 屏幕解锁 slider 拖动到右侧。注意突然的跳跃,并注意如果您有另一根手指放在屏幕上的其他任何位置,则不会发生这种情况

  2. 尝试在任意数量的 3D 游戏中“爬行”穿过狭窄的桥。令人沮丧!

  3. 尝试双虚拟操纵杆游戏并注意,效果会减轻,因为你必须永远不要结束任何一个触摸,从而分摊不愉快的感觉。

应该在 8 个月前将此记录为错误。

最佳答案

触发touchesBegan事件后,UIKit会查找手指触摸的位置移动,当手指的x/y发生变化时,该位置移动会转换为touchedMoved事件,直到手指抬起并触发touchesEnded事件。

如果手指按住一处,则在发生移动之前不会触发 TouchMoved 事件。

我正在构建一个应用程序,您必须根据touchesMoved进行绘制,它确实会每隔一段时间发生,但它的速度足够快,可以提供平滑的绘制外观。由于它是一个事件并隐藏在 SDK 中,因此您可能需要在您的场景中进行一些测试,看看它的响应速度有多快,具体取决于其他操作或事件,它可能会根据所使用的情况而变化。根据我的经验,它的移动时间在几毫秒之内,并且屏幕上还有大约 2-3k 个其他 Sprite 。

绘图确实从touchesBegan事件开始,因此设置了第一个位置,然后它链接到touhesMoved并以touchesEnd结束。我将所有事件用于拖动操作,因此在这种情况下,初始移动在感知上可能不太滞后。

要在您的应用中进行测试,您可以在每个事件上添加时间戳(如果它对您的设计至关重要)并制定某种缓动措施。

http://developer.apple.com/IPhone/library/documentation/UIKit/Reference/UIResponder_Class/Reference/Reference.html#//apple_ref/occ/instm/UIResponder/touchesMoved:withEvent :

关于iphone - 什么时候touchesBegan变成touchesMoved?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1122616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com