개발 중인 어플 기능으로 터치를 유지하고 있을 때 발생하는 이벤트를 만들고 싶어서 궁리했다.

구글이라는 신의 한수가 있었지만 어떤 키워드로 검색해야하는지 조차 몰라서 실패.

(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

+ Recent posts