I have a scrollview with pagination. In viewDidLoad i check if the current orientation is landscape then i set its contentsize\'s height 440
if (UIDeviceOri
Don't use UIDeviceOrientation
. Use UIInterfaceOrientation
instead. DeviceOrientation
has two extra options you don't need here. (UIDeviceOrientationFaceUp
and UIDeviceOrientationFaceDown
)
Return Yes
from shouldAutorotateToInterfaceOrientation
Now willRotateToInterfaceOrientation: duration:
will be called every time you rotate your device.
Implement this method like this.
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
CGRect frame;
int pageNumber = 2;
int statusBarHeight = 20;
if ((toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)) {
frame = CGRectMake(0, 0, 480, 320 - statusBarHeight);
} else {
frame = CGRectMake(0, 0, 320, 480 - statusBarHeight);
}
scrollView.frame = frame;
scrollView.contentSize = CGSizeMake(frame.size.width * 2, frame.size.height);
}
Let,
pageNumber = 2
statusBarHeight = 20