#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
.