この概念を理解するのに少し時間がかかりました。ポートレートとランドスケープで同じ画像を作りたくありませんでした。ここで重要な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;
}