为了账号安全,请及时绑定邮箱和手机立即绑定

横向模式下的iPhone应用程序,2008系统

横向模式下的iPhone应用程序,2008系统

iOS
凤凰求蛊 2019-10-16 14:05:12
请注意,这个问题来自2008年,现在仅具有历史意义。从头开始,不管设备处于什么位置,创建以横向模式运行的iPhone应用程序的最佳方法是什么?既可以通过编程方式也可以使用Interface Builder。
查看完整描述

3 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

仅历史性答案。惊人地过时了。

请注意,此答案现在已经过时/


这个答案只是出于历史的好奇心。


令人兴奋的消息!如以下Andrew所发现,此问题已由Apple在4.0+中修复。


似乎不再需要在每个视图上强制使用该视图的大小,并且解决了“仅在第一次使用时”景观的特定严重问题。


截至2011年4月,不可能测试甚至构建低于4.0的东西,所以这个问题纯粹是历史性的好奇。令人难以置信的是,这么长的时间给开发人员造成了多大的麻烦!


这是原始的讨论和解决方案。现在,这完全不相关,因为这些系统甚至无法运行。


完全无法完成这项工作非常困难-至少存在三个问题/错误。


试试这个.. 界面生成器的景观设计


特别要注意的是,它说“并且您需要在任何地方正确使用shouldAutorotateToInterfaceOrientation”时,它表示在任何地方,所有全屏视图。


希望它能在这场噩梦中有所帮助!


在这里手的附加众所周知的问题的一个重要的提示:如果你想之间交换不止一个视图(所有横向),它根本不起作用。记住这一点很重要,否则您将在问题上浪费很多时间。从字面上看这是不可能的。这是iOS平台上最大的已知漏洞。实际上,没有办法使硬件使您加载的第二个视图成为风景。烦人但简单的解决方法以及必须要做的就是拥有一个琐碎的主UIViewController,它只坐在那儿什么都不做,让您在视图之间交换。


换句话说,在iOS中由于一个主要的已知错误:


[window addSubview:happyThing.view];

[window makeKeyAndVisible];

您只能这样做一次。以后,如果您尝试删除happyThing.view,而是将其放置在newThing.view中,则它不起作用-就是这样。机器将永远不会将视图旋转到风景。没有技巧修复,甚至Apple也无法使它起作用。您必须采用的解决方法是拥有一个整体UIViewController,该UIViewController只是坐在那里并只保存您的各种视图(happyThing,newThing等)。希望能帮助到你!


查看完整回答
反对 回复 2019-10-16
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

经过我自己测试后,所有帖子的摘要和集成;检查以下4.x,5.x的更新。


从3.2版本开始,您无法通过代码更改正在运行的应用程序的方向。


但是您可以以固定的方向启动应用程序,尽管这样做并非易事。


试试这个食谱:


将方向设置UISupportedInterfaceOrientations为Info.plist文件中的

在窗口中定义一个480x320“基本视图控制器”。其他所有视图将作为子视图添加到其视图。

在所有视图控制器中设置shouldAutorotateToInterfaceOrientation:方法(当然,要返回您在plist中定义的相同值)

在所有视图控制器中,使用


self.view.frame = CGRectMake(0, 0, 480, 320)


在viewDidLoad方法中。


更新(iOS 4.x,5.x):《 Apple iOS应用程序编程指南》的“高级应用程序技巧”一章中有“以横向模式启动”段落。


查看完整回答
反对 回复 2019-10-16
  • 3 回答
  • 0 关注
  • 341 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信