Поиск координат касания жестом с помощью locationOfTouch

#iphone #ios #coordinates #uigesturerecognizer #cgpoint

#iPhone #iOS #координаты #распознаватель пользовательских настроек #cgpoint

Вопрос:

Привет, пытался определить местоположение пользовательского свайпа, чтобы у меня было 3 области на экране, в которых можно проводить пальцем, и определить, с какой частью они реагируют, на основе y-координат их свайпа.

Это код

 CGPoint touchPoint = [recognizer locationOfTouch:0 inView:nil];
  

Я попытался напечатать точку касания.вводим y в метку, и все, что я получаю, равно 0. Как мне получить координаты пользовательского свайпа?

Спасибо.

Комментарии:

1. Где вы вызываете этот метод?

2. @Deepak внутри этой функции.. - (void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer { CGPoint touchPoint = [recognizer locationOfTouch:0 inView:nil]; if (touchPoint.y >= 160){ if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft) { } else { }

3. @Anna Karenina int tou = touchPoint.y; NSString *to = [[NSString alloc] initWithFormat:@"%i", tou]; touch.text = to;

4. Вместо того, чтобы inView:nil попробовать inView:recognizer.view .

5. Это сработало, спасибо @Karenina если вы хотите опубликовать это как ответ, тогда я могу подтвердить это как ответ для всех 🙂

Ответ №1:

Его странный, но настраиваемый вид как nil или self.view.window возвращает 0. Там нет упоминания о таком поведении, и документ Apple в UISwipeGestureRecognizer, похоже, поощряет поиск источника касания с помощью этого метода. Было бы неплохо записать это под ошибкой.

Это работает и для других представлений. Скажите self.view .