Autolayout si perfect for this scenario, the "only" problem is that you can't do in Storyboard Editor, but in code. I really suggest you a book there is an equal problem Erica Sadun Autolayout demistified.
The approach is to have different sets of constraints, one for landscape and one portrait, removing and installing them alternatively, but maybe the best would be just change their priorities.
Changing the xib seems an easier solution, but in my opionio is a less maintinable options.
You should:
- create 2 xibs: one for portrait an one for landscape
- on the view controller's xib, create a container view, with autoresizing masks or constraint that will stretch it according to main view changes.
- in the view controller method
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duratio
n swap the 2 view. since this is wrapped in an animation block, you can just lower alpha on one a turn on on the other and remove
Take a look a here