ios - 在 QLPreviewController 工具栏上放置白色工具栏看起来是灰色的

标签 ios swift uitoolbar qlpreviewcontroller

我偶然发现了 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
}

上一屏幕的工具栏

enter image description here

QLPreviewController 屏幕中的工具栏

enter image description here

QLPreviewController 的原始工具栏

enter image description here

是否有不同/更好的方法来设置工具栏颜色?由于 QuickLook 通过 XPC 运行,我无法直接编辑工具栏。因此,我必须执行此迂回操作 hack 才能在屏幕上获得自定义工具栏。

最佳答案

当我试图不显示 QLPreviewController 上的所有项目时,我遇到了类似的问题。

我最终继承了 QLPreviewController:

import QuickLook

class PreviewController: QLPreviewController {

    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)

        navigationItem.leftBarButtonItems = nil
    }

}

关于ios - 在 QLPreviewController 工具栏上放置白色工具栏看起来是灰色的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41107566/

相关文章:

iphone - 为什么我的 iPhone 应用程序崩溃并出现异常 "Could not load NIB in bundle"?

ios - UIButton 文本出现一段时间,它在 ios 中显示另一个空文本?

iOS - 使工具栏滚动到底部

ios - 水平居中 UIToolbar 中的所有项目,包括带有 UILabel 的自定义 View

iPhone 工具栏由多个 View 共享

ios - 在触摸屏幕之前如何停止调用函数?

ios - flutter:如果 app delegate swizzling 被禁用,UIApplicationDelegate 收到的远程通知需要转发到 FIRAuth 的

swift - 如何删除 PDFDocument 边距

ios - Spotify SDK 播放器不工作 : Error Domain=com. spotify.ios-sdk.playback Code=1 "The operation failed due to an unspecified issue."

xml - 使用未声明的类型 'XMLDocument'