- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想支持类似Safari的布局,在水平规则的环境下,按钮显示在导航栏上,但在水平紧凑的环境下,有些按钮在导航栏上,有些按钮在工具栏上。
这就是我的 traitCollectionDidChange
override func traitCollectionDidChange(previousTraitCollection: UITraitCollection?) {
let editingContextButton = editing ? resetButton : doneButton
if traitCollection.horizontalSizeClass == .Regular {
navigationController?.toolbarHidden = true
navigationItem.leftBarButtonItems = [editButtonItem(), helpButton]
navigationItem.rightBarButtonItems = [editingContextButton, addButton]
} else if traitCollection.horizontalSizeClass == .Compact{
navigationController?. toolbarHidden = false
navigationItem.leftBarButtonItems = [editButtonItem()]
navigationItem.rightBarButtonItems = [editingContextButton]
navigationController?.toolbarItems = [helpButton, UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: nil, action: nil), addButton]
}
}
但是从常规水平尺寸类过渡到紧凑类时似乎存在问题。导航栏中的项目始终正确,但工具栏项目被截断或为空。
当启动 ViewController 时,它总是被正确地设置和显示,并且它总是在水平的常规大小类中是正确的——只有当大小类从常规变为紧凑时才会出现问题。
这是一个示例,显示右下角的添加按钮在更改尺寸等级后从工具栏中消失。
在 5.5"iPhone 上旋转设备时会发生同样的事情,而在 iPad 上竖屏时,激活多任务处理后工具栏只是空的。这里有什么问题?谢谢!
最佳答案
我意识到我没有正确设置工具栏项。而不是
navigationController?.toolbarItems = [helpButton, UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: nil, action: nil), addButton]
我应该做的:
setToolbarItems([helpButton, UIBarButtonItem(barButtonSystemItem: .FlexibleSpace, target: nil, action: nil), addButton], animated: false)
关于ios - 在 TraitCollectionDidChange 之后重组 Toolbar 和 NavigationBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37610738/
我的应用程序有一个错误。这个错误的原因是 UIViewController 在 UI 主题从浅色变为深色或从深色变为深色后更新 UITableView 单元格。 我可以修复这个bug,这个bug本身不
我发现当将应用程序放入后台时,traitCollectionDidChange 方法被调用了两次,并显示特征集合在实际上没有进行任何更改时会有所不同。 - (void)traitCollectionD
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { super.tr
我正在努力采用多任务处理来支持应用程序的 Split View,但我发现当应用程序位于右侧时未调用 traitCollectionDidChange。 有人知道吗? 最佳答案 您可以在您的 ViewC
在我的应用程序中,我允许用户覆盖设备上设置的外观。如果他们想覆盖系统范围的外观,这是处理更新 UI 的类: class UserInterfaceStyleController { init() {
我基于我的 UIView 子类中的框架使用 CALayer 做了一些绘图,我需要在设备旋转时更新线,但在 traitCollectionDidChange 中,框架仍然保持旋转前的值。有没有办法在旋转
UITraitEnvironment 的文档说: This method is called automatically when the current trait collection chang
我有一个包含 TableView 并显示自定义单元格的 View Controller 。我正在尝试使用 traitCollectionDidChange 方法(在单元格子类中)对内容大小类别更改使用
我有一个包含 TableView 并显示自定义单元格的 View Controller 。我正在尝试使用 traitCollectionDidChange 方法(在单元格子类中)对内容大小类别更改使用
您知道为什么即使没有 Size Class 更改也会调用 traitCollectionDidChange 吗? 选择一个 UILabel,我在 Storyboard属性检查器/已安装 UILabel
在我的例子中,我正在根据 traitCollection.horizontalSizeClass 更改我的 View 布局这是我的代码片段。 override func traitCollecti
我有一个 swift 项目,其中包含一个使用 Size Classes 的 Storyboard,一个符合 UITraitEnvironment 协议(protocol)并实现了函数 traitCol
我的应用程序使用自定义颜色主题,但 iOS13 用户可以选择进入以下暗模式。 我以为我可以简单地在 ViewController's 中更新我的颜色traitCollectionDidChange()
我想支持类似Safari的布局,在水平规则的环境下,按钮显示在导航栏上,但在水平紧凑的环境下,有些按钮在导航栏上,有些按钮在工具栏上。 这就是我的 traitCollectionDidChange o
UITraitEnvironment 的文件说: This method is called automatically when the current trait collection chang
我希望 UIImageView 中的图像为我们提供一个不同的图像文件,该文件经过裁剪以在方向从纵向更改为横向时正确填充横向模式。以下所有代码都在扩展 UIViewController 的类中定义。 当
我用 UISplitViewController .当用户将他的 iPhone 6 Plus 旋转为纵向并且不再看到任何细节时,我想显示一个空的选择细节场景。 (所有其他设备的行为都可以预测。只有 6
TL;DR 在 Xcode 11 上 一些 应用程序布局因 iOS 13 而损坏(以下操作系统都可以)。当我进入后台并返回时,它是固定的...除非 UIUserInterfaceStyle 设置为 L
我是一名优秀的程序员,十分优秀!