내 앱에서 버튼을 놓을 때까지 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