gpt4 book ai didi

ios - 在 TraitCollectionDidChange 之后重组 Toolbar 和 NavigationBar

转载 作者:行者123 更新时间:2023-11-28 08:36:13 24 4
gpt4 key购买 nike

我想支持类似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 时,它总是被正确地设置和显示,并且它总是在水平的常规大小类中是正确的——只有当大小类从常规变为紧凑时才会出现问题。

这是一个示例,显示右下角的添加按钮在更改尺寸等级后从工具栏中消失。

enter image description here

在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com