There is another work around that I've thought about...
You could use the:
bgView.transform = CGAffineTransformMakeRotate(angle);
You should calculate the angle according to the orientation (it could be M_PI/2, M_PI or 3*M_PI/2)...
You can use this function inside - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
and also wrap it with an animation that will animate for the exact duration as the screen orientation animation:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
// Decide what will be the angle...
// Make the animation
[UIView beginAnimations:@"orientationChange" context:nil];
[UIView setAnimationDuration: duration];
bgView.transform = CGAffineTransformMakeRotate(angle);
[UIView commitAnimations];
}
Notice that view's size might be changed because of the top bar...
Notice also that I've never tried it myself...