UIScrollview getting touch events UIScrollview getting touch events ios ios

UIScrollview getting touch events


Set up a tap gesture recognizer:

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapGestureCaptured:)];[scrollView addGestureRecognizer:singleTap];    

and you will get the touches in:

- (void)singleTapGestureCaptured:(UITapGestureRecognizer *)gesture{     CGPoint touchPoint=[gesture locationInView:scrollView];}


You can make your own UIScrollview subclass and then you can implement the following:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {NSLog(@"DEBUG: Touches began" );UITouch *touch = [[event allTouches] anyObject];    [super touchesBegan:touches withEvent:event];}- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event {    NSLog(@"DEBUG: Touches cancelled");    // Will be called if something happens - like the phone rings    UITouch *touch = [[event allTouches] anyObject];    [super touchesCancelled:touches withEvent:event];}- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {    NSLog(@"DEBUG: Touches moved" );    UITouch *touch = [[event allTouches] anyObject];    [super touchesMoved:touches withEvent:event];}- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {    NSLog(@"DEBUG: Touches ending" );    //Get all the touches.    NSSet *allTouches = [event allTouches];    //Number of touches on the screen    switch ([allTouches count])    {        case 1:        {            //Get the first touch.            UITouch *touch = [[allTouches allObjects] objectAtIndex:0];            switch([touch tapCount])            {                case 1://Single tap                    break;                case 2://Double tap.                    break;            }        }            break;    }    [super touchesEnded:touches withEvent:event];}


If we're talking about the points inside the scrollview then you can hook with the delegate method:

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

and inside the method, read the property:

@property(nonatomic) CGPoint contentOffset

from the scrollView to get the coordination.