컴포넌트를 만들일이 생겨, 만드는중에, single tap 과 double tap 을 구분해서 사용해야할 경우가 필요했다.
일반적으로
UITapGestureRecognizer *singleGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(menuTapped:)];
singleGestureRecognizer.numberOfTapsRequired = 1;
[menuItem addGestureRecognizer:singleGestureRecognizer];
[singleGestureRecognizer release];
UITapGestureRecognizer *doubleGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(menuDoubleTapped:)];
doubleGestureRecognizer.numberOfTapsRequired = 2;
[menuItem addGestureRecognizer:doubleGestureRecognizer];
[doubleGestureRecognizer release];
와 같이 gesture recognizer 를 이용해서 사용을 하는데, 이렇게만 할경우,
double tap할때, single, double selector가 모두 호출이 된다.
찾아보다가 간단한 방법으로 해결할 수 있었다.
http://stackoverflow.com/questions/2833970/multiple-taps-with-uitapgesturerecognizer 에서 설명한 방법으로,
" - (void)requireGestureRecognizerToFail:(UIGestureRecognizer *)otherGestureRecognizer; " 를 이용하는 것이다.
api 를 확인해보면, 다른 gestureRecognizer 와의 관계를 설정할수 있다.
친절히 example 에 내가 하려는 것이 적혀있다. ^^
// create a relationship with another gesture recognizer that will prevent this gesture's actions from being called until otherGestureRecognizer transitions to UIGestureRecognizerStateFailed
// if otherGestureRecognizer transitions to UIGestureRecognizerStateRecognized or UIGestureRecognizerStateBegan then this recognizer will instead transition to UIGestureRecognizerStateFailed
// example usage: a single tap may require a double tap to fail
- (void)requireGestureRecognizerToFail:(UIGestureRecognizer *)otherGestureRecognizer;
그러면 이전 코드에서 한줄만 추가 해주면 되겠다.
[singleGestureRecognizer requireGestureRecognizerToFail:doubleGestureRecognizer];
간단하다.
-----------------------------------------------------------------------------------------------------
2011.09.21
근데, 이걸 이렇게 사용하니, SingleTap 시에 delay가 발생하네요. DoubleTap 인지 확인 때문에 발생하는 현상.
음...
'mobile > ios' 카테고리의 다른 글
| [ios4 이상] Photo Library 에서 데이터 가져오기 (0) | 2011/09/22 |
|---|---|
| JSONKit... 만약 정말 빠른 파서를 찾는다면... (0) | 2011/09/21 |
| UITapGestureRecognizer singleTap 과 doubleTap 구분하기 (0) | 2011/09/08 |
| UITableView Scroll 최상단으로 이동하기. (0) | 2011/05/12 |
| (원문 & 한글) 앱스토어 리뷰가이드 라인 2010.09.XX (0) | 2010/09/16 |
| [iPhone] Multiple NSURLConnection (0) | 2010/06/10 |




댓글을 달아 주세요