如何自定义UIPrintInteractionController的外观

Jim*_*m T 13 ios

苹果蓝与我的app颜色不匹配,因此打印对话框非常刺耳.

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

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

问题是我使用自定义UIPrintPageRenderer类来呈现我的页面.这似乎触发了在发送打印作业后弹出的屏幕.它有一个导航栏,带有完成按钮,下面有一条消息说"发送到打印机".我认为这是因为你可以看到多个页面被发送(我只有一个).在选项对话框消失后弹出,并且您已返回到原始屏幕,您启动了所有内容.

"发送到打印机"屏幕是蓝色的,最大的丑陋.无论如何要消除它或定制它的外观?"

Jac*_*mon 2

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

[[UINavigationBar appearance] setTintColor:[UIColor redColor]];
Run Code Online (Sandbox Code Playgroud)

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

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