Метод touchesEnded не вызывается? - PullRequest
0 голосов
/ 25 ноября 2011

Я разрабатываю приложение, в котором я использую

- (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 {
}

Теперь моя проблема в iphone 3 после touch move, это вызывает handleSingleTap функцию, а touchesEnded не вызывается. Это происходит только в какой-то нижней части экрана, когда я двигаюсь туда, сенсорный конец не вызывается. Если я двигаюсь долго, то touchesEnded вызывают.

Но эта штука работает правильно в IPhone4 и IPad. В IPhone4 и IPad после touchsesMoved он звонит touchesEnded.

1 Ответ

1 голос
/ 25 ноября 2011

Вы не единственный, кто столкнулся с этой проблемой. Я нашел похожую ветку в списке форумов поддержки Apple: https://discussions.apple.com/thread/1507669?start=0&tstart=0

Эта ветка датируется 2008 годом, что совпадает с iPhone 3, поэтому я думаю, что есть вероятность, что это нефиксированная ошибка на iOS, работающей на iPhone 3.

В противном случае, если это не так, возможно, это связано с тем, что вы используете UIScrollView (контроллер которого реализует сенсорные методы, перечисленные выше). По умолчанию у него есть метод с именем:

delaysContentTouches

Это установлено в ДА. Может быть, вы должны изменить его на нет и сказать, как он себя ведет.

Если вы не используете UIScrollView, возможно, вы используете два представления, а второе представление, содержащее «мертвую область», не подключено к вашему контроллеру?

...