Цель C - Обнаружение касания - PullRequest
2 голосов
/ 16 сентября 2011

Я создаю раздел галереи изображений для приложения.
Как я могу обнаружить касание с небольшой задержкой?Как в приложении «Фото» переключаться между скрытием навигации и отображением навигации?

Этот метод я использую сейчас

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

Однако он работает просто отлично.нажатие и пролистывание изображения делают приложение запутанным.Мол, я собираюсь сильно ударить, но кран тоже сработает.

Спасибо,
Тройник

1 Ответ

1 голос
/ 17 сентября 2011

Вам необходимо реализовать все три метода, например:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    _touchMoved = NO;
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    _touchMoved = YES;
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    if ( !_touchMoved ) {
             // good we just tapped!
             // here you can also check for time difference between when touches began and ended
    }
}

Однако, если вы ищете "Долгое нажатие", рассмотрите возможность использования распознавателей жестов, в частности UILongPressGestureRecognizer.Вы можете создать экземпляр UILongPressGestureRecognizer и прикрепить его к своему виду, используя -(void)addGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer, определенный для любого UIView

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...