В моем приложении я хочу, чтобы UILongPressGestureRecognizer отправлял непрерывные сообщения каждую секунду, пока кнопка не будет отпущена. К сожалению, нет такого состояния, как «непрерывный», поэтому мне нужно использовать «началось» и «закончено», чтобы контролировать мои сообщения. Вот мой код, который у меня есть до сих пор, я получаю оба журнала на терминале, но цикл while не останавливается?iOS - UILongPressGestureRecognizer
- (void)longPress:(UILongPressGestureRecognizer*)gesture {
BOOL loop = NO;
if (gesture.state == UIGestureRecognizerStateBegan) {
NSLog(@"Long press detected.");
loop = YES;
while (loop){
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]];
// here I want to do my stuff every second
}
} else if (gesture.state == UIGestureRecognizerStateEnded) {
NSLog(@"Long press Ended");
loop = NO;
}
}
Кто-нибудь может помочь?
Предложения - использовать таймер. И используйте переменную экземпляра вместо локальной переменной. – rmaddy
А может быть, рассмотрим подклассификацию UILongPressGestureRecognizer? – matt