user1802143
user1802143

Reputation: 15672

iOS Generic Touch Handler

Is there any such thing as a generic handler for any sort of touch event? A method that get called when any sort of interaction occurs with information about the touch event passed as a parameter.

Upvotes: 0

Views: 248

Answers (1)

Stunner
Stunner

Reputation: 12194

You are going to want to adhere to the UIGestureRecognizerDelegate protocol, namely the following two methods:

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer;
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;

Within these methods you can check the gesture recognizer object to see if it is the type of gesture you are looking for and specify whether or not the gesture should begin or receive the touch.

EDIT: To detect the end of a gesture you would have something like this:

// in viewDidLoad or in initialization of your view controller:
    _panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanGestureRecognizer:)];
    [self addGestureRecognizer:_panGestureRecognizer];
    [_panGestureRecognizer setDelegate:self];

- (void)handlePanGestureRecognizer:(UIPanGestureRecognizer *)gesture {
    UIGestureRecognizerState state = [gesture state];
    if (state == UIGestureRecognizerStateEnded) {
        // gesture ended here
    }
}

Upvotes: 1

Related Questions