13

苹果蓝与我的应用颜色不匹配,因此打印对话框非常刺眼。

在我的 iPhone 应用程序中,我可以使用以下 UIPrintInteractionControllerDelegate 代码获得正确的导航栏和背景颜色。

- (UIViewController *)printInteractionControllerParentViewController:   (UIPrintInteractionController *)printInteractionController
{
   return self.navigationController;
}
- (void)printInteractionControllerDidPresentPrinterOptions:(UIPrintInteractionController *)printInteractionController
{
   self.navigationController.topViewController.view.backgroundColor = [UIColor whiteColor];   
}

问题是我使用自定义 UIPrintPageRenderer 类来呈现我的页面。这似乎触发了在发送打印作业后弹出的屏幕。它有一个带有完成按钮的导航栏和下面的消息,上面写着“发送到打印机”。我认为这是为了让您可以看到正在发送的多个页面(我只有一个)。在选项对话框消失并且您已返回到您启动所有操作的原始屏幕后,这会弹出。

“发送到打印机”屏幕是蓝色和丑陋到最大。有没有办法消除它或定制它的外观?”

4

2 回答 2

2

我不知道你的完整代码,但你可以试试外观协议。这实质上允许您设置特定 UI 元素(如按钮和栏)的通用颜色(或其他属性)。因此,您可以使用以下代码设置打印控制器导航栏的背景颜色:

[[UINavigationBar appearance] setTintColor:[UIColor redColor]];

这将使您的应用程序中的所有导航栏,包括打印导航控制器的,都是红色的。然后,您可以稍后通过设置栏的外观(即 self.navigationController.navigationBar.tintColor)来更改您不想变成红色的那些。

顺便说一句,这适用于iOS 7,iOS 6 没有 tint color 属性,我认为它只是使用背景颜色。

于 2014-12-23T03:45:37.530 回答
0

对于 iOS 13.0 + 你可以使用对我有用的这个

if #available(iOS 13.0, *) {
        let appearance = UINavigationBarAppearance()
        appearance.configureWithOpaqueBackground()
        appearance.backgroundColor = UIColor.orange
        appearance.titleTextAttributes = [.foregroundColor: UIColor.white] // With a red background, make the title more readable.
        UINavigationBar.appearance().standardAppearance = appearance
        UINavigationBar.appearance().scrollEdgeAppearance = appearance
        UINavigationBar.appearance().compactAppearance = appearance // For iPhone small navigation bar in landscape.
} else {
        UINavigationBar.appearance().tintColor = UIColor.white
        UINavigationBar.appearance().titleTextAttributes = [.foregroundColor: UIColor.white]
        UINavigationBar.appearance().barTintColor = UIColor.orange
}
    UIBarButtonItem.appearance().tintColor = UIColor.white
    UISegmentedControl.appearance().tintColor = UIColor.orange
于 2021-04-06T05:23:47.720 回答