uigesturerecognizer в приложении для iphone

#iphone #objective-c #ios #uitapgesturerecognizer

#iPhone #objective-c #iOS #uitapgesturerecognizer

Вопрос:

Привет, я хочу эмулировать долгое нажатие кнопки? как я могу это сделать? Я думаю, что необходим таймер. Можете ли вы мне помочь? Я вижу UILongPressGestureRecognizer , но как я могу использовать этот тип?

вот код, он не распознает длительное нажатие

 UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)];
[self.button addGestureRecognizer:longPress];
[longPress release];

- (void)longPress:(UILongPressGestureRecognizer*)gesture {
    if ( gesture.state == UIGestureRecognizerStateEnded ) {
         NSLog(@"Long Press");
    }
}
 

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

1. Попробуйте использовать - (IBAction)longPress:(UILongPressGestureRecognizer*)gesture

2. Проверьте minimumPressDuration свойство. Интервал времени указан в секундах. Длительность по умолчанию составляет 0,5 секунды.

Ответ №1:

Для использования UILongPressGestureRecognizer необходимо установить minimumPressDuration свойство. Это указывает, как долго ждать, пока ваш распознаватель жестов не будет запущен. Например

 UILongPressGestureRecognizer *longPress = [[[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)] autorelease];
longPress.minimumPressDuration = 2.0f;
[self.button addGestureRecognizer:longPress];

- (void)longPress:(UILongPressGestureRecognizer*)gesture {
    if ( gesture.state == UIGestureRecognizerStateEnded ) {
         NSLog(@"Long Press");
    }
}