注意:这个问题来自2008年,现在只具有历史意义.
无论设备的位置如何,创建从横向模式运行的iPhone应用程序的最佳方法是什么?
以编程方式和使用Interface Builder.
这只是一个测试应用程序,只有一个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;
}
Run Code Online (Sandbox Code Playgroud)
如果没有设置状态栏方向的第一行,即使界面的其余部分处于横向左侧,警报视图也会以纵向显示.
无论如何,Log仍然给出了这个:
win 768.000000 - 1024.000000
Run Code Online (Sandbox Code Playgroud)
这是错误的方式(因此当我在我的真实应用程序中添加子视图时,框架不正确)
苹果似乎已经在界面旋转方面变得非常糟糕,因为我只有问题,我不记得在iPhone上发生过这种情况,所以请有人告诉我如何解决这个问题.
我会给那些能够至少解释为什么会发生这种情况并希望提供解决方案的人提供500点声誉(这几乎不是我的声誉).