Вы можете установить маску автоматического изменения размера для каждого вида в макете любым удобным для вас способом.
Например, если вы хотите, чтобы кнопка всегда отображалась в верхнем левом углу, вы можете установить маску автоматического изменения размера на гибкую верхнюю и левую.
Если ваш макет полностью отличается в портретной и альбомной ориентации, то вам нужно установить кадры в willRotateToInterfaceOrientation.
Например, если вы хотите, чтобы ваша кнопка находилась слева вверху в портретной ориентации и в центре в альбомной ориентации, вам нужно установить фрейм в указанном выше методе делегата.
Редактировать ответ:
if(UIInterfaceOrientationIsLandscape(toInterfaceOrientation)){
if(!landscapeModeViewController){
landscapeModeViewController=[[LandscapeModeViewController alloc] initWithNibName:@"LandscapeModeViewController" bundle:nil];
}
[self.view addSubview:landscapeModeViewController.view];
[self.view bringSubviewToFront:landscapeModeViewController.view];
}
else if(UIInterfaceOrientationIsPortrait(toInterfaceOrientation)){
if(!portraitMode){
portraitMode=[[PortraitMode alloc] initWithNibName:@"PortraitMode" bundle:nil];
}
[self.view addSubview:portraitMode.view];
[self.view bringSubviewToFront:portraitMode.view];
}