From what I understand, you have 2 UIScrollViews simultaneously on the screen.
From what I saw and experienced, On iOS 4, which has 2 UIScrollViews, side by side gives undefined behavior. One of scrollview can scroll, sometimes others, sometimes too.
In iOS 5, if you have 2 UIScrollViews nearby, then clicking on the status bar “scrolls up” to the right of the UIScrollView “under your faucet”
I do not know how this works, but that was my observation. iOS 5 smart!
If your UIScrollViews are one above the other, then the behavior is probably undefined. I did not check.
Hope this helps.
If you want to make it work anyway, then this is a possible solution.
Subclass or Add a category to UIWindow and add a gesture recognizer / or implement a hitTest that detects touch only for Y <20, etc., Then send a notification and listen to it in your viewController and programmatically scroll through the UIScrollView at the top.
EDIT
Embed this in a subclass of UIWindow (iPad)
- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent *)event { if ([event type] == UIEventTypeTouches && point.y < 20 && [[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationPortrait) { NSLog(@"Portrait"); } else if ([event type] == UIEventTypeTouches && point.y > 1004 && [[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationPortraitUpsideDown) { NSLog(@"PortraitUpsideDown"); } else if ([event type] == UIEventTypeTouches && point.x < 20 && [[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeLeft) { NSLog(@"LandscapeLeft"); } else if ([event type] == UIEventTypeTouches && point.x > 748 && [[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationLandscapeRight) { NSLog(@"LandscapeRight"); } return [super hitTest:point withEvent:event]; }
source share