如何改变UIDocumentInteractionController完成按钮的文字和背景颜色

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何改变UIDocumentInteractionController完成按钮的文字和背景颜色相关的知识,希望对你有一定的参考价值。

如何更改完成按钮的背景颜色和文字颜色?有没有办法,我可以改变颜色导航栏和导航栏标题颜色和底部栏的颜色也是一个办法?参考附截图:enter image description here

答案

我解决了它。这里是为我工作完美的代码:

func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
    UINavigationBar.appearance().barTintColor = Colors.redColor()
    UINavigationBar.appearance().tintColor = UIColor.white
    UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName : UIColor.white, NSFontAttributeName: UIFont.systemFont(ofSize: 14, weight: UIFontWeightBold)]
    return self
}
另一答案

这是一个有点哈克为依托的事实,QLPreviewController是实施UIDocumentInteractionController类,但这样的事情是侵入性最小的解决方案。做到这一点,你显示UIDocumentInteractionController前

import QuickLook

UIBarButtonItem.appearance(whenContainedInInstancesOf [QLPreviewController.self]).tintColor = UIColor.black
另一答案

我有一个IDEAR改变栏的颜色:

let allNavigationBar = UINavigationBar.appearance()
allNavigationBar.barTintColor = UIColor.red  // change the bar background color
allNavigationBar.tintColor = UIColor.black // change the Done button's tintColor

let alloolbar = UIToolbar.appearance()
allToolbar.barTintColor = UIColor.red  // dones't work, try backgroundImage
allToolbar.backgroundColor = UIColor.blue // dones't work
allToolbar.tintColor = UIColor.brown // change the toolbar's item tint color

但这种方法有很大的作用,所有的UINavigationBarand UIToolBar会做出的改变。

希望其他人能够给出一个更好的解决方案。

另一答案

你可以暂时改变窗口的色调颜色。

func presentDocument() {
    //present the controller here
    self.appDelegate.window.tintColor = UIColor.red
}

然后换回来后:

func documentInteractionControllerDidEndPreview(documentInteractionController) { //replace parameter with your uidocumentviewinteractioncontroller
    self.appDelegate.window.tintColor = UIColor.white
}
另一答案

@Dee。我想你问这个部分在您的其他问题之一。在这种情况下,你无法证明预览控制器。在这个问题提出的答案是从委托方法返回的“自我”。如果您实现正确那么你预览将使用相同的导航栏的颜色作为其父控制器使用。我的意思是,如果你有一些视图控制器直接打开UIDocumentInteractionController然后UIDocumentInteractionController将利用其父的viewController的导航栏的颜色。这可以帮助你完成更改按钮颜色

另一答案

试试这个:(您需要实现UIDocumentInteractionControllerDelegate)

func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
    return self.navigationController ?? self
}
另一答案
     let QLNavAppearance = UINavigationBar.appearance(whenContainedInInstancesOf: [QLPreviewController.self])
    QLNavAppearance.tintColor = UIColor.red // some
    QLNavAppearance.barTintColor =  UIColor.red // some
    QLNavAppearance.backgroundColor =  UIColor.red // some

以上是关于如何改变UIDocumentInteractionController完成按钮的文字和背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

Delphi中,如何改变TMemo中的内容?

如何改变PWM波的频率

如何设置鼠标经过时,改变背景颜色?

easyui datagridview 中表头颜色如何改变,默认的表头颜色是灰白色,如何改变

Android开发中SeekBar的值改变后,系统如何得到其改变后的值

Qt 中如何改变Label大小