gpt4 book ai didi

iphone - 以多次触摸开始的触摸给出了错误的位置

转载 作者:行者123 更新时间:2023-12-01 19:24:29 26 4
gpt4 key购买 nike

我目前正在使用此代码来获取所有触摸的位置:

NSSet *allTouches = [event allTouches];
NSArray *allObjects=[allTouches allObjects];
for (int i=0;i<[allObjects count];i++)
{
UITouch *touch = [allObjects objectAtIndex:i];
CGPoint location = [touch locationInView: [touch view]];

//Add to array....
}

在模拟器上测试它时(现在没有 iPad 来测试它),它可以完美地与单点触控配合使用。但是当尝试多次触摸时,第一次迭代是正确的,而第二次迭代没有给出正确的位置。

IE。
第一次接触:(536,163) 正确
第二次触摸:(198,608)但应该在(148,345)左右

我觉得我应该用 [touch locationInView: [touch view]] 改变一些东西;给出正确的位置,但我不知道要改变什么。
任何帮助表示赞赏。

最佳答案

如果不查看您的 View 、任何 subview 以及您在其中触及的位置,很难从一组坐标中理解问题,但您应该知道:

  • [touch locationInView:aView]给出 aView 坐标系中的触摸坐标.也就是说,你看到的坐标是相对于aView的左上角的。这可能不是您所期望的。试试 [touch locationInView:self] , 比较常见。
  • 查看 iOS 事件处理指南的“事件和触摸”部分。如果您尝试跟踪多次触摸,通常不需要遍历该集合。 iOS 为您处理所有这些。您可以使用属性 tapCountphase获取有关触摸是否移动、向下的手指数等信息。

  • 这些有帮助吗?

    关于iphone - 以多次触摸开始的触摸给出了错误的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8540993/

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