如果我将手指从第一次触摸上抬起,那么它将识别出下次触摸就很好了。只有当我连续按住第一下然后尝试同时用另一根手指触摸另一个区域时。然后,它将再次错误地将第二次触摸注册为第一次触摸。

更新这与touchesEnd有关在最后一次触摸结束时结束)

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

 UITouch* touch = [touches anyObject];

 NSString* filename = [listOfStuff objectAtIndex:[touch view].tag];

// do something with the filename now

}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

 ITouch* touch = [touches anyObject];
 NSString* buttonPressed = [listOfStuff objectAtIndex:[touch view].tag];

 // do something with this info now
}

最佳答案

我今天有这个(或者更确切地说,今天我把这个问题抛给了我!)。

我看到的情况是:

  • 手指触摸屏1
  • touches开始触发
  • 手指2触摸屏
  • touches开始触发
  • 释放Finger 2
  • 没有任何 react
  • 释放手指1
  • touchesEnded触发
  • touchesEnded触发

  • 正如加文·克利夫顿(Gavin Clifton)所说,只有添加手势识别器,它才会发生。如果未添加识别器,则松开每个手指后会触发touchesEnded。如果我不需要使用识别器,那就太好了!!!!!!

    我通过添加 poseRotation.delaysTouchesEnded = FALSE来解决此问题; 到我的识别器创建/添加代码:
    gestureRotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(gestureRotation_Callback:)];
    
    [gestureRotation setDelegate:self];
    gestureRotation.cancelsTouchesInView = FALSE;
    gestureRotation.delaysTouchesEnded = FALSE;        // <---- this line!!
    [self.view addGestureRecognizer: gestureRotation];
    [gestureRotation release];
    

    现在,手势开始工作,并且touchesBe开始不再排队!

    关于iphone - touchesEnded没有被调用???或被随机召唤,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2726533/

    10-10 20:38