touchesEnded方法没有被调用?

时间:2011-11-25 10:46:45

标签: objective-c xcode cocoa-touch iphone-4 iphone-3gs

我正在开发一个我使用

的应用程序
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
}

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

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

-(void)handleSingleTap:(UITapGestureRecognizer *)recognizer {
}

现在我在touch move调用handleSingleTap函数并且touchesEnded没有被调用后在iphone 3中出现问题。这种情况只发生在屏幕的某些下半部分,当我移动触摸结束时没有被调用。如果我移动很长,那么touchesEnded会被调用。

但是这个东西在IPhone4和IPad中正常工作。 在touchsesMoved之后的IPhone4和IPad中,它正在调用touchesEnded

1 个答案:

答案 0 :(得分:1)

您不是唯一遇到此问题的人。我在Apple Support论坛列表中找到了类似的主题:https://discussions.apple.com/thread/1507669?start=0&tstart=0

这个帖子的历史可以追溯到2008年,与iPhone 3相吻合,所以我想这可能是iPhone 3上运行iOS的一个不固定的错误。

否则,如果不是这种情况,可能是因为您使用的是UIScrollView(其控制器正在实施您上面列出的触摸方法)。默认情况下,它有一个名为:

的方法
delaysContentTouches

设置为YES。也许你应该将它改为否,并说出它的行为。

如果您没有使用UIScrollView,可能是您正在使用两个视图而第二个包含“死区”的视图未连接到您的控制器?