Метод touchesEnded не вызывается?

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

- (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 ответ

Решение

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

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

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

delaysContentTouches

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

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

Другие вопросы по тегам