gpt4 book ai didi

ios - UITouch 触摸事件向下识别为移动

转载 作者:行者123 更新时间:2023-12-01 16:44:15 24 4
gpt4 key购买 nike

我有以下问题:

如果我用一根手指(即中指)点击触摸屏并靠近手指向上的那一刻,我用第二根手指(即食指)点击靠近另一根手指所在的区域,而不是获得向下事件,我的第一根手指移动到
第二根手指的向下位置。重现有点棘手,但它是可重现的。

我有一个 UIView 并且对于触摸我有以下内容:

- (void) touchesBegan: (NSSet *) touches withEvent: (UIEvent *) event
{
for (UITouch *touch in touches) {
int index = (int)touch;
CGPoint position = [touch locationInView:self];
NSLog(@"DOWN %d x:%f y:%f", index, position.x, position.y);
}
}

- (void) touchesMoved: (NSSet *) touches withEvent: (UIEvent *) event
{
for (UITouch *touch in touches) {
int index = (int)touch;
CGPoint position = [touch locationInView:self];
NSLog(@"MOVE %d x:%f y:%f", index, position.x, position.y);
}
}

- (void) touchesEnded: (NSSet *) touches withEvent: (UIEvent *) event
{
for (UITouch *touch in touches) {
int index = (int)touch;
CGPoint position = [touch locationInView:self];
NSLog(@"UP %d %f %f", index, position.x, position.y);
}
}

当我复制它时,我有以下输出
DOWN 510365696 x:891.500000 y:197.000000
MOVE 510365696 x:774.000000 y:263.000000
MOVE 510365696 x:766.000000 y:268.500000
UP 510365696 764.500000 270.000000

其中上面的 MOVE 是第二根手指的向下位置。正如您还可以看到应该在 pos (891,197) 中的第一根手指的 UP 完全丢失了......

我知道我可以检测到这些“跳跃”,但无法将它们与快速移动的手指区分开来。

我很感激任何帮助。

最佳答案

当我尝试与您相同的 code ,我观察到的是,即使是手指的最轻微移动也会被检测到。

当您使用 点击时食指并在按住它的同时,如果您使用 点击中指 , 中指 位置未记录。实际上,记录的是您的 的点的细微变化。食指观察为 移动行动。

向上 被记录的位置也靠近 食指接触点。

的行动中指 永远不会被发现。

我认为问题在于 Multiple Touch选项未启用。
选择您的 View 后,在 Utilities Pane 中,选择 Attributes Inspector从那里勾选Multiple Touch复选框。

这是一个屏幕截图:

enter image description here
Multiple Touch 时的实际日志启用将如下所示:

DOWN 475396224 x:229.000000 y:6.500000
DOWN 475411840 x:102.000000 y:50.000000
MOVE 475396224 x:231.500000 y:8.000000
MOVE 475411840 x:104.500000 y:51.500000
UP 475396224 231.500000 8.000000
UP 475411840 104.500000 51.500000

希望这可以帮助 !

关于ios - UITouch 触摸事件向下识别为移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21430073/

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