我已经阅读了关于这个主题的所有帖子,但仍然无法弄清楚这个。
我在applicationDidFinishLaunching
的窗口中添加了一个VC。 VC包含一个UIImageView。
我想根据设备方向设置UIImageView的图像,但statusBarOrientation
,deviceOrientation
,interfaceOrientation
,我检查的所有内容都会返回肖像。
我必须要有一些简单的东西。
感谢您的帮助。
答案 0 :(得分:1)
您是否在Info.plist中启用了其他方向?在Xcode 4的项目编辑器中有一个图形编辑器。
答案 1 :(得分:0)
有时候(不确定这是在每种情况下,还是模拟器),应用程序将以一个方向启动,然后立即旋转到另一个方向以匹配设备方向。
我建议实施-[UIViewController willRotateToInterfaceOrientation:duration:]
来设置您的图像,应立即调用。
答案 2 :(得分:0)
// add the splash IV to the window per the current orientation, then animate it away
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
if([[UIDevice currentDevice] orientation] == UIDeviceOrientationPortrait){
self.theSplashIV.image = [UIImage imageNamed:@"Default-Portrait~ipad.png"];
self.theSplashIV.frame = CGRectMake(0, 20, 768, 1004);
}
else if([[UIDevice currentDevice] orientation] == UIDeviceOrientationPortraitUpsideDown){
self.theSplashIV.image = [UIImage imageNamed:@"Default-Portrait~ipad.png"];
self.theSplashIV.transform = CGAffineTransformMakeRotation(M_PI);
self.theSplashIV.frame = CGRectMake(0, 0, 768, 1004);
}
else if([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeLeft){
self.theSplashIV.image = [UIImage imageNamed:@"Default-Landscape~ipad.png"];
self.theSplashIV.transform = CGAffineTransformMakeRotation(M_PI / 2);
self.theSplashIV.frame = CGRectMake(0, 0, 748, 1024);
}
else if([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeRight){
self.theSplashIV.image = [UIImage imageNamed:@"Default-Landscape~ipad.png"];
self.theSplashIV.transform = CGAffineTransformMakeRotation(M_PI / -2);
self.theSplashIV.frame = CGRectMake(20, 0, 748, 1024);
}
[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
然后我延迟了飞溅IV的动画。 不是很优雅,但它有效。