- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用 UISplitViewController
.当用户将他的 iPhone 6 Plus 旋转为纵向并且不再看到任何细节时,我想显示一个空的选择细节场景。 (所有其他设备的行为都可以预测。只有 6 Plus 可以改变它的外观。)我现在使用 split view delegate相反,这涉及到一些奇怪的查询,但这不是重点。
我想知道如何确定 iPhone 6 是否旋转为横向。
我想出的最好主意:对特质环境变化使用react。主视图 Controller 始终保持紧凑,只有它的父导航 View Controller 从紧凑变为常规并再次变回。 (当然还有 UIWindow。)
使用 Split View Controller 时,对于 UINavigationController
的子类在“大师”中,traitCollectionDidChange:
使用 iPhone 6 Plus 并旋转到横向时将被调用两次。旋转回来时调用一次。willTransitionToTraitCollection:withTransitionCoordinator:
甚至分别被调用了 3 次和 1 次。
我想那是因为在风景中你可以看到两个 View Controller 并排。 UINavigationController
对我来说没有意义不过,完全接收到对 subview Controller 的调用。
由于UITraitCollections
不包含有关哪个 View Controller 受到影响的信息,我无法确定环境是否可靠地从常规更改为紧凑的水平尺寸。其中一个特征集合将报告正确的新值,但我无法将它们彼此区分开来。
你是如何解决这个问题的,既然回调被多次调用并具有不同的值?
最佳答案
我知道这是一个旧线程,但我在网上找不到相同问题的解决方案,所以这是我的两分钱。
UISplitViewController 是一个容器 View Controller 。所以即使它上面有 View Controller ,它也被认为是“显示的”。在苹果文档中它说:
“ View Controller 将特征更改消息转发给他们的 subview Controller 。表示 Controller 将特征更改转发给他们呈现的 View Controller 。”
因此,每当您在 Split View Controller 的大小类中引入更改时,它都会将其称为委托(delegate)及其两个子项的委托(delegate)。
欲了解更多信息,请查看:https://developer.apple.com/reference/uikit/uicontentcontainer/1621511-willtransitiontotraitcollection
编辑:我只是注意到我没有完全解释为什么 UISplitViewController 被调用三次。如果 willTransitionToTraitCollection:withTransitionCoordinator: 未在呈现的 View 中实现,它可能遵循 Apple 为其设置的约定:
“如果您在自己的对象中覆盖此方法,请始终在您的实现中的某个时刻调用 super ,以便 UIKit 可以将特征更改转发到关联的表示 Controller 和任何 subview Controller 。”
我认为它背后的想法是,在更改 subview Controller 的 traitCollection 时,您可能想要更改其 sibling 的布局和/或数量。为此目的,子 Controller 中的任何更改都必须调用容器,以便它知道发生了什么并相应地进行调整。但是,它无法跟踪哪些更改与其他更改重叠,因此所有更改都已注册。
我的解决方案是通过子类化并添加转换逻辑来处理 subview Controller (在我的情况下为 UINavigationControllers)而不是 splitViewController 中的更改。
关于ios - 对 iPhone 6+ 旋转使用react——traitCollectionDidChange : called twice for nav controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32907534/
我不知道该在标题中添加什么内容,但我有以下代码: @Controller public class WorkdayAddController { @Autowired private WorkdayR
已编辑:我需要用户按其全局进度 [order by avg(progression) DESC] 以及按进度排序的详细信息行进行排序。 示例: USER 1 campaign 1 progressio
我知道这是一个更“沉重”的问题,但我认为它也很有趣。它是 of my previous questions about compiler functions 的一部分, 但回过头来我解释得非常糟糕,许
我有一个函数(表单中的事件处理程序)结构如下: Dim errMsg as String = "" CheckIfValidUser(..., errMsg) If errMsg.Length > 0
我正在为客户正在举办的事件创建注册表。基本的用户详细信息被提交到第三方系统(即姓名、电子邮件等),但其余字段需要通过电子邮件发送给客户。 我需要这样的事情发生: 列出项目 用户填写表单 jquery
我有一个ClassLoader,它从源文件加载由JavaCompiler编译的类。但是当我更改源文件、保存它并重新编译它时,ClassLoader 仍然加载该类的第一个版本。 ClassLoad
我有一个使用 Kotlin 编写的 RecognitionListener 的项目。语音转文本功能一直很成功,从未出现任何问题。 从上周开始,它的 onResult 函数开始被调用两次。该项目没有进行
大家好(和圣诞快乐) 希望有人能回答我的问题,那将是一个美好的圣诞节 礼物。 我的 UIViewController 一个表,在表部分区域中有一个分段控件。看起来像这样 每次用户单击分段控件时,我都会
我正在制作一个程序,输入三个数字,然后计算一些不同的东西(每个东西都必须有自己的函数)。该程序首先告诉用户他们的选择并等待他们的输入。执行任何情况后,程序将再次打印菜单,除非它将使用默认情况,然后它将
我的 Android 应用程序有一个自定义接收器,如下所示: public class CustomReceiver extends BroadcastReceiver{ String URL; St
我有一系列带日期的事件,如下所示: 事件 1,2014 年 1 月 1 日 事件 2,2014 年 1 月 2 日 事件 3,2014 年 1 月 3 日 假设我想要按时间顺序排列的最近两个事件。如果
我对 jQuery“切换”方法有一个神秘的问题。我单击它一次,但它会设置两次动画。你自己去看看吧! Demo 页面源码贴在下面,(解决后链接会消失) html: About us S
我对Python完全陌生,当我遇到这个问题时,我正在尝试线程模块:-线程由于某种原因运行两次,我不知道为什么。我到处寻找,但没有找到任何答案。希望我能在这里得到一些帮助 import time fro
先决条件:无障碍对讲开启。 问题:当从软键盘向编辑文本输入字符时,字符被读出两次。(我想一次是通过键盘,一次是通过编辑文本)。 最佳答案 问题:视力正常的用户不能很好地理解/理解盲人用户需要的信息类型
我的问题是,当我再次对相同的值进行评分时,它不会响应第二次..这意味着当我第一次评分为“4”时,我不能将其评分为“4”第二次..只有当我评价其他值而不是'4'时它才会响应。 这是我尝试过的(我的代码中
我必须设计一个问卷系统。我们一直在讨论很多事情,包括如何持有答案,以及如何持有可能的答案。现在,尽管我不同意,但我还是屈服于我的同事。我只想知道您对此的看法以及原因。对我来说,两次保存相同的信息是一个
我将 Angular2 与路由一起使用,我的页面在初始加载时显示重复内容。单击任何链接(Page1 或 Page2)后,一切正常(不再有重复内容)。为什么我在初始加载时得到重复的内容以及我需要什么才能
我用KTX。。我有以下代码:。为什么它显示了两次?我该如何解决这个问题呢?。。预计“点击开始游戏”的标签只会显示一次。。我试着删除了代码。但它还是发生了。。然后,我尝试删除Add(LoadingSta
现象说明 maven的java项目,测试用例和main所在的源码文件均符合缺省写法和格式,但是在使用mvn clean sonar:sonar进行编译时提示can't be indexed twi
我使用 React 创建了一个简单的 Meteor 应用程序。它使用名为 client 的文件夹中的三个文件(没有其他文件)。在控制台中,应用程序打印出: withTracker rendering
我是一名优秀的程序员,十分优秀!