Мне потребовалось некоторое время, чтобы понять эту концепцию. Я не хотел создавать одинаковые изображения портрета и пейзажа. Ключевым моментом здесь является то, что CGAffineTransformMakeRotation
вращается из исходного состояния вашего UIImageView или любого UIView по этому вопросу. Это предполагает, что ваше фоновое изображение имеет ориентацию к нему. Например. Вы хотите, чтобы ваш UIImageView оставался на месте, в то время как другие объекты ведут себя как обычное событие изменения ориентации.
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration {
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) {
backgroundImage.transform = CGAffineTransformMakeRotation(M_PI / 2);
}
else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight){
backgroundImage.transform = CGAffineTransformMakeRotation(-M_PI / 2);
}
else {
backgroundImage.transform = CGAffineTransformMakeRotation(0.0);
}
}
- (void)viewDidLoad {
[super viewDidLoad];
//set the UIImageView to current UIView frame
backgroundImage.frame = self.view.frame;
}