我偶然发现了this SO discussion添加/删除qlpreviewcontroller的uibarbuttonitems。但是他们正在移除导航栏并在其上面叠加一个新的导航栏。
我想更改工具栏主要是因为QLPreviewController附带的工具栏是黑色的,我应用程序中的其余工具栏都是白色的。
我有代码来使条形覆盖,但似乎当我将工具栏色调颜色设置为白色时,它实际上变成浅灰色。我认为这是因为工具栏不是不透明的,但在将alpha设置为1.0之后,它仍然看起来一样。
扩展QLPreviewController的类的相关工具栏代码
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
....
self.overlayToolBar?.setItems([actionBtn], animated: false)
self.overlayToolBar?.tintColor = .blue
self.overlayToolBar?.barTintColor = .white
}
上一屏幕的工具栏
来自QLPreviewController屏幕的工具栏
QLPreviewController的原始工具栏
是否有不同/更好的方法来设置工具栏颜色?由于QuickLook通过XPC运行,我无法直接编辑工具栏。因此,我必须在环形 hack 上进行此操作才能在屏幕上显示自定义工具栏。
答案 0 :(得分:4)
当我试图不在QLPreviewController上显示所有项目时,我遇到了类似的问题。
我最终继承了QLPreviewController:
import QuickLook
class PreviewController: QLPreviewController {
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
navigationItem.leftBarButtonItems = nil
}
}