这只是一个测试应用程序,只有一个 AppDelegate 类来创建我所做的只是创建一个基于 Window 的应用程序,将支持的方向设置为仅 info.plist 中的横向,然后添加以下代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[application setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft];
// Override point for customization after application launch.
UIAlertView *test = [[UIAlertView alloc] initWithTitle:@"hu" message:@"hui" delegate:nil cancelButtonTitle:@"hi" otherButtonTitles:nil];
[test show];
[window makeKeyAndVisible];
NSLog(@"win %f - %f", window.bounds.size.width, window.bounds.size.height);
return YES;
}
如果没有设置状态栏方向的第一行,即使界面的其余部分在横向左侧,警报视图也会以纵向显示。
无论如何,日志仍然给出:
win 768.000000 - 1024.000000
这是错误的方式(因此当我在我的真实应用程序中添加子视图时,框架不正确)
苹果似乎真的在界面旋转上搞砸了,因为我除了问题什么都没有,我不记得在 iPhone 上发生过任何这种情况,所以请有人告诉我如何解决这个问题。
我会给至少可以解释为什么会发生这种情况并希望能提供解决方案的人提供 500 个声誉(除了我的声誉的 10 个)。