- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
关于如何实现对横向/纵向模式自动旋转进行正确处理的 iPhone 应用程序,这里存在很多困惑和一系列相应的问题。当需要以横向模式启动时,实现这样的应用程序尤其困难。最常见的观察到的效果是困惑的布局和不再识别触摸的屏幕区域。
简单搜索标记为 iphone
和 landscape
的问题即可发现这些问题,这些问题会在某些情况下发生:
Landscape only iPhone app with multiple nibs :应用程序以横向模式启动,第一个 Nib 的 View 渲染良好,从不同 Nib 加载的所有 View 都无法正确显示。
加载新 Controller 时,iPhone 横向模式切换到纵向模式:不言自明
iPhone: In landscape-only, after first addSubview, UITableViewController doesn’t rotate properly :与上面相同的问题。
iPhone Landscape-Only Utility-Template Application :布局错误, Controller 似乎无法识别应该旋转的 View ,但在横向模式下显示剪裁的纵向 View ,导致一半屏幕保持空白。
presentModalViewController in landscape after portrait viewController :模态视图也无法正确呈现。
已经提出了一组不同的解决方案,其中一些包括通过 CoreGraphics 完全自定义的动画,而其他解决方案则基于从主 Nib 加载的第一个 View Controller 始终显示正确的观察结果。
我花了大量时间调查这个问题,最终找到了一个解决方案,该解决方案不仅是部分解决方案,而且应该在所有这些情况下都有效。我写这篇 CW 文章的目的是为其他在横向模式下遇到 UIViewControllers 问题的人提供常见问题解答。
请提供反馈并通过纳入任何相关观察结果来帮助提高本文的质量。如果您知道的话,请随意编辑并发布其他/更好的答案。
最佳答案
在你的 View Controller 中,重写shouldAutorotateToInterfaceOrientation:来声明你支持的界面方向。每次设备方向发生变化时, Controller 基础设施都将/应该检查此属性。
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation
{
return (orientation == UIInterfaceOrientationLandscapeRight);
}
这是 View Controller 需要做的绝对最少的事情。如果您想以横向模式启动应用程序,则需要将以下 key 添加到您的 .plist
文件中:
<key>UIInterfaceOrientation</key>
<string>UIInterfaceOrientationLandscapeRight</string>
Apple 建议在横向右模式下启动仅限横向的应用程序(请参阅“用户体验指南”>“立即启动”下的 the HIG)。
每次您尝试加载与从主 Nib 加载的 View Controller 不同的 View Controller 时,您的 View Controller 既不会询问其支持的界面方向,也不会正确设置其框架。只有绑定(bind)到窗口的第一个 View Controller 才会正确布局。
其他人建议使用连接到主窗口的“MasterViewController”,其他 Controller 将其 View 添加为 subview ,而不是直接连接到窗口。虽然我发现此解决方案是一个可行的选择,但在将模态视图 Controller 添加到这些 subview 的情况下,它无法正常工作。如果您有一些 subview 应该能够自动旋转(主 Controller 将阻止),那么也会出现问题。
使用未记录的 API 来强制特定的界面方向也不是一种选择。
到目前为止,我发现的最佳解决方案是对“MasterViewController”解决方法的修改。不使用自定义的“MasterViewController”,而是使用带有隐藏导航栏和隐藏选项卡栏的 UINavigationController
。如果从该 Controller 的导航堆栈中推送/弹出所有其他 View ,则该堆栈上 Controller 的自动旋转将得到正确管理。
通过 presentModalViewController:animated:
从 UINavigationController
导航堆栈上的任何 View Controller 呈现的模态 Controller 都将旋转并以正确的布局呈现。如果您希望模态视图 Controller 可旋转到与父 View Controller 不同的方向,则需要从 parent 的 shouldAutorotateToInterfaceOrientation
方法返回所需的方向呈现模态视图时的 Controller 。为了在模态 Controller 关闭时正确恢复界面方向,您需要在调用 dismissModalViewController:animated:
之前确保 shouldAutorotateToInterfaceOrientation
返回父 Controller 所需的方向。 。您可以在 View Controller 上使用私有(private) BOOL
来管理它(例如 BOOL isModalMailControllerActive_
)。
我很快就会添加一段示例代码,现在已经晚了。如果这篇文章还有任何 Unresolved 问题或有任何不清楚的地方,请告诉我。请随意编辑和改进。
关于iPhone 横屏常见问题及解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2953351/
我只是想知道要安装哪个版本的 Visual Studio 2010(专业版或高级版)提示升级项目.. 项目包括:asp.net mvc、数据库和silverlight。 最佳答案 通常,由不同版本的相
目录 前言 四、技术选型 五、后端接口设计 5.1业务系统接口 5.2App 端接口 六、关键逻辑实现 6.1Red
目录 前言 一、需求分析 1.1发送通知 1.2撤回通知 1.3通知消息数 1.4通知消息列表 二、数据模型设计
目录 前言 一、多租户的概念 二、隔离模式 2.1独立数据库模式 2.2共享数据库独立数据架构 2.3共享数据库共享数据架构
导读: 虽然锁在一定程度上能够解决并发问题,但稍有不慎,就可能造成死锁。本文介绍死锁的产生及处理。 死锁的产生和预防 发生死锁的必要条件有4个,分别为互斥条件、不可剥夺条件、请求与保持条件和循环等待条
在浏览网页后,我找不到任何功能来执行此操作,我有可行的个人解决方案。也许它对某人有用。 **使用 Moment 插件转换日期。***moment(currentPersianDate).clone()
是否有一种解决方案可以很好地处理数字(1-10)手写?我试过tesseract,但我得到的只是垃圾。 理想情况下是 OSS,但商业也可以。 最佳答案 OpenCV 现在带有手写数字识别 OCR 示例。
在服务器应用程序上,我们有以下内容:一个称为 JobManager 的单例类。另一个类,Scheduler,不断检查是否需要向 JobManager 添加任何类型的作业。 当需要这样做时,调度程序会执
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 5年前关闭。 Improve this qu
当您尝试从 GitHub 存储库安装某些 R 包时 install_github('rWBclimate', 'ropensci') 如果您遇到以下错误: Installing github repo
问题在以下链接中进行了描述和演示: Paul Stovell WPF: Blurry Text Rendering www.gamedev.net forum Microsoft Connect: W
我正在寻找一种解决方案,使用标准格式 a × 10 b 在科学记数法下格式化 R 中的数字。一些同行评审的科学期刊都要求这样做,并且手动修改图表可能会变得乏味。 下面是 R 标准“E 表示法”的示例,
已编辑解决方案(如下...) 我有一个启动画面,它被打包到它自己的 jar 中。它有效。 我可以通过以下方式从另一个 java 应用程序内部调用 Splash.jar: Desktop.getDesk
什么是创建像 PageFlakes 或 iGoogle 这样的门户网站的好框架/包? ?我们希望创建一个为员工提供 HR 服务的员工/HR 门户,但我们也需要一种足够灵活的产品,以便我们可以使用它来为
我正在寻找一种解决方案,使用标准格式 a × 10 b 在科学记数法下格式化 R 中的数字。一些同行评审的科学期刊都要求这样做,并且手动修改图表可能会变得乏味。 下面是 R 标准“E 表示法”的示例,
如何将 solr 与 heritrix 集成? 我想使用 heritrix 归档一个站点,然后使用 solr 在本地索引和搜索该文件。 谢谢 最佳答案 使用 Solr 进行索引的问题在于它是一个纯文本
完整日历不包含工作时间功能选项(在任何一天的议程 View 中选择第一行和最后一行 - 例如公司不工作)。我做到了类似的事情: viewDisplay: function(view){
我正在使用 bootstrap 作为我的下拉菜单。但有一个问题, 如果我的下拉菜单有多级子菜单,那么它会显示在屏幕上,并出现底部滚动条。 如何将子菜单保留在屏幕内,我需要一个 jQuery 解决方案。
我有一个要转换为 C# 的 Excel 宏。目前我手动转到一个已经打开的 IE 窗口,从中复制所有内容(html 表)并粘贴到 excel 工作表中。然后我正在处理数据。这非常有效,因为将 html
我用谷歌搜索了一下,但没有找到好的结果。 现在我正在构建一个网站,我试图从一开始就从设计的角度使其尽可能正确。 我现在面临的问题是,在决定开始使用日志记录时,我需要一个项目来放置这段代码。由于我无法在
我是一名优秀的程序员,十分优秀!