개발 중인 어플 기능으로 터치를 유지하고 있을 때 발생하는 이벤트를 만들고 싶어서 궁리했다.
구글이라는 신의 한수가 있었지만 어떤 키워드로 검색해야하는지 조차 몰라서 실패.
(touch hold? holding? event... ;;???)
어떻게 접근할지 막막해서 상상력을 동원.
NSTimer를 이용하는 방법으로 가장 근접하게 작성했으나 구현 실패했고 코드도 굉장히 지저분.
그러다 UILongPressGestureRecognizer를 이용해서 의외로 쉽게 해결할 수 있었다.
- (id) init { UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)]; longPress.allowableMovement = 20; longPress.minimumPressDuration = 0.5f; [self.view addGestureRecognizer:longPress]; [longPress release]; } - (void)longPress:(UILongPressGestureRecognizer*)gesture {
if ( gesture.state == UIGestureRecognizerStateBegan ) {
//이벤트 처리 isHeld_ = YES; }
else if (gesture.state == UIGestureRecognizerStateEnded) {
if (isHeld_ == YES) { //이벤트 처리 isHeld_ = NO; } }
} |
'Objective C' 카테고리의 다른 글
애플의 개발자 가이드 읽는 순서 (0) | 2015.02.21 |
---|---|
데이터 송신 수신 (0) | 2014.10.25 |
UIWebView에서 HTML 가져오기 (0) | 2014.10.25 |