【发布时间】:2011-08-15 18:56:25
【问题描述】:
我的主窗口中有一个背景图像,因此当我翻转视图时,它后面不是一个空白的白色屏幕,而是一个图像。我的问题是设备旋转时此图像不旋转。
编辑: 据我所知,Brett 指出在这种情况下我必须手动旋转背景图像是正确的。以防它在将来帮助其他人,这就是我如何旋转它。
内部myAppDelegate:
- (void) application:(UIApplication *)application
willChangeStatusBarOrientation:(UIInterfaceOrientation)newStatusBarOrientation
duration:(NSTimeInterval)duration
{
if (newStatusBarOrientation == UIInterfaceOrientationPortrait)
self.bgImage.transform = CGAffineTransformIdentity;
else if (newStatusBarOrientation == UIInterfaceOrientationPortraitUpsideDown)
self.bgImage.transform = CGAffineTransformMakeRotation(-M_PI);
else if (UIInterfaceOrientationIsLandscape(newStatusBarOrientation))
{
float rotate = ((newStatusBarOrientation == UIInterfaceOrientationLandscapeLeft) ? -1:1) * (M_PI / 2.0);
self.bgImage.transform = CGAffineTransformMakeRotation(rotate);
self.bgImage.transform = CGAffineTransformTranslate(self.bgImage.transform, 0, -self.bgImage.frame.origin.y);
}
}
【问题讨论】:
-
UIImage 必须在您的 UIView 中。是吗?
-
哇,真的很想知道它是如何工作的(在翻转时摆脱空白屏幕)。为你点赞!
-
@Peter,所以你是说 UIImageView 不会在主窗口上自动旋转,我必须把它放在 UIView 中并为它声明一个视图控制器?
-
你甚至不必为它创建一个新的视图控制器。只需确保它在 IB 中的 UIView 内。
-
它是一个标签栏模板,所以 MainWindow.xib 除了
UIWindow之外没有UIView。这是我放置UIImageView的地方。
标签: iphone ios rotation mainwindow