2011-09-15 5 views
0

매우 민감한 핵심 데이터를 처리하는 재로드 방법이 있는데이 메소드를 병렬로 실행할 수 없다는 것을 구현하고 싶습니다.터치 제스처 당 한 번만 선택기에 액세스

그런 식으로 구현하는 간단한 방법이 있습니까?

업데이트는 어쩌면 다른 문제입니다.

그래서 나는 사용자가이 제스처를 할 때 한 번만 메서드를 실행하려고합니다.

하지만 지금 iOS 시뮬레이터에서 시뮬레이트하고있는 경우, 사용자가이 집기를 유지하는 한 최소한의 집어 넣기 동작이 인식되면 실행됩니다.

기본 사용입니까?!?!? 어떻게하면 사용자가이 몸짓을 얼마나 오래 붙잡고있는 지에 관계없이 손가락으로 제스처 당 한 번만 해고된다는 것을 어떻게 편집 할 수 있습니까?

+4

핀치 제스처는 연속 동작입니다. 액션 메소드 내에서, 제스처가 시작 되 자마자 로직을하고 싶다면'UIGestureRecognizerBegan'으로 설정되어있는 제스처 인식기의'state' 속성 (매개 변수로 전달됨)이 실행되는지'UIGestureRecognizerEnded'가 체크 할 수 있습니다 제스처가 완료되면 일부 논리. – albertamg

+1

Ahh typo ... 물론'UIGestureRecognizerStateBegan'과'UIGestureRecognizerStateEnded'를 의미했습니다. 가끔은 StackOverflow 내 의견을 컴파일하지 않는 것 같아요 ... – albertamg

답변

-1

andi1984 물론

을, 당신은 방법은 주 스레드에서 실행해야 할 수 있습니다. 이 예와 같이 : 그것은 당신의 액션 메소드를 여러 번 호출 할 수 있도록

- (void) sensitiveMethod { 

    // If necessary, rethrow on the main queue. 
    if (!NSThread.isMainThread) { 

     [[NSOperationQueue mainQueue] addOperationWithBlock: ^{ 

      [self sensitiveMethod]; 
     }]; 
     return; 
    } 

    // body of your sensitive method here. 

} // sensitiveMethod 

앤드류

관련 문제