【发布时间】:2010-04-28 02:51:38
【问题描述】:
如果我在第一次触摸时抬起手指,那么它会很好地识别下一次触摸。只有当我连续按住第一次触摸然后尝试用不同的手指同时触摸不同的区域时。然后它会错误地将第二次触摸重新注册为第一次触摸。
更新它与 touchesEnded 有关直到最后一次触摸结束才被调用(它不关心在你最终放开最后一次触摸之前是否已经结束了 5 次其他触摸一个...一旦最后一次触摸结束,它就会调用它们全部结束)
- (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
}
【问题讨论】:
-
我创建了一个简单的测试项目,似乎每次抬起手指时都会调用 touchesEnded...
-
Vladimir,您介意在某处发布您的代码示例,以便我看看有什么不同吗?无论出于何种原因,我的所有 touchesEnded 都会在稍后同时被调用,而不是在它们实际发生时调用
-
顺便说一句,在我的程序中,触摸是在滚动视图内的 UIImageViews 上,如果这有什么不同的话,所有这些都在 UIView 内
-
弗拉基米尔,这可能与滚动视图中的所有 UIImageViews 有关吗?在滚动视图之外,它们做得很好并立即发送 touchesEnded 消息,但在滚动视图中,它们不会立即发送消息。这会以某种方式延迟还是没有正确发送到响应者链上?
标签: iphone multi-touch uitouch touchesbegan