是否可以更改QLPreviewController的背景颜色?

时间:2015-01-28 19:23:07

标签: ios objective-c iphone qlpreviewcontroller

我试图使用QLPreviewController查看PDF,并且我正在努力改变某些视图属性,例如导航栏标题和视图背景。

我可以在继承QLPreviewController并更改self.navigationController.navigationBar.translucency = NO;方法中的didViewAppear之后更改导航栏的半透明度,但是我无法对navigationBar.title或者backgroundColor进行更改self.view.backgroundColor的{​​{1}}属性。

当视图首次加载时,标题和背景颜色都会闪烁,但会立即被PDF标题字符串和覆盖视图背景颜色的PDF本身所取代。 PDF页面显示在黑色背景上。

我想首先知道如果可以将该背景颜色子类化或以其他方式更改为我自己的自定义颜色,那么我很想知道是否有人有任何建议或知道改变背景颜色的正确解决方案

标题值在较小程度上也是如此。

1 个答案:

答案 0 :(得分:4)

在Swift 4子类UINavigationController中输入:

    override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.

    UINavigationBar.appearance(whenContainedInInstancesOf: [QLPreviewController.self]).isTranslucent = false
    UINavigationBar.appearance(whenContainedInInstancesOf: [QLPreviewController.self]).tintColor = #colorLiteral(red: 0.1889409125, green: 0.6918108463, blue: 0.9730117917, alpha: 1)
    UINavigationBar.appearance(whenContainedInInstancesOf: [QLPreviewController.self]).titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]
  }