How to lock the horizontal scrolling of a scrollView in iOS

Same (adapted) answer for you as in:

Disabling vertical scrolling in UIScrollView

right, all answers here are ok…

but if for some strange reason your contentSize should be higher than the UIScrollView in both dimensions, you can disable the horizontal scrolling implementing the UIScrollView protocol method -(void)scrollViewDidScroll:(UIScrollView *)aScrollView

just add this in your UIViewController

float oldX; // here or better in .h interface

- (void)scrollViewDidScroll:(UIScrollView *)aScrollView
{
    [aScrollView setContentOffset: CGPointMake(oldX, aScrollView.contentOffset.y)];
    // or if you are sure you wanna it always on left:
    // [aScrollView setContentOffset: CGPointMake(0, aScrollView.contentOffset.y)];
}

it’s just the method called when the user scroll your UIScrollView, and doing so you force the content of it to have always the same .x

Leave a Comment