请注意,这个问题来自 2008 年,现在仅具有历史意义。
创建一个从一开始就以横向模式运行的 iPhone 应用程序的最佳方法是什么,无论设备的位置如何?
以编程方式和使用 Interface Builder。
最佳答案
请注意,这个答案现在已经过时了/
这个答案只是历史上的好奇。
令人振奋的消息!正如下面 Andrew 所发现的,Apple 已在 4.0+ 中修复了此问题。
似乎不再需要在每个 View 上强制 View 的大小,并且景观“仅在第一次工作”的具体严重问题已经解决。
截至 2011 年 4 月,无法测试甚至构建低于 4.0 的任何东西,所以这个问题纯粹是历史上的好奇。这么长时间给开发者带来了多大的麻烦,真是不可思议!
这是最初的讨论和解决方案。现在这完全无关紧要,因为这些系统甚至无法运行。
要完全完成这项工作是极其困难的——至少存在三个问题/错误。
试试这个.. interface builder landscape design
特别注意它说“并且你需要在任何地方正确使用 shouldAutorotateToInterfaceOrientation” 它意味着无处不在,你的所有全屏 View 。
希望它对这场噩梦有所帮助!
这里要提醒一下手头的另一个众所周知的问题:如果您尝试在 MORE THAN ONE View (所有横向)之间切换, 它根本不起作用。记住这一点很重要,否则你会在这个问题上浪费几天的时间。这实际上是不可能的。这是 iOS 平台上最大的已知漏洞。从字面上看,没有办法让硬件使您加载的第二个 View 成为风景。烦人但简单的解决方法,你必须做的是,拥有一个微不足道的主 UIViewController,它什么也不做,只是坐在那里让你在 View 之间切换。
也就是说,在 iOS 中因为一个重大的已知 bug:
[window addSubview:happyThing.view];
[window makeKeyAndVisible];
您只能这样做一次。稍后,如果您尝试删除 happyThing.view,而是将 newThing.view 放在那里,它不起作用 - 就是这样。机器永远不会将 View 旋转为横向。没有任何技巧可以修复,即使 Apple 也无法使其正常工作。您必须采用的解决方法是拥有一个整体 UIViewController,它只是坐在那里并只保存您的各种 View (happyThing、newThing 等)。希望对您有所帮助!
https://stackoverflow.com/questions/402/