13

アップルブルーは私のアプリの色と一致しないので、印刷ダイアログは非常に耳障りです。

私のiPhoneアプリでは、次のUIPrintInteractionControllerDelegateコードを使用して、適切なナビゲーションバーと背景色を取得できます。

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

問題は、カスタムUIPrintPageRendererクラスを使用してページをレンダリングすることです。これにより、印刷ジョブが送信された後にポップアップする画面がトリガーされるようです。[完了]ボタンのあるナビゲーションバーと、下に「プリンタに送信しています」というメッセージが表示されます。これは、複数のページが送信されていることを確認できるようにするためだと思います(私は1つしか持っていません)。これは、オプションダイアログが消え、すべてを開始した元の画面に戻った後にポップアップします。

「プリンタに送信」画面は青色で、最大で醜いです。それを排除したり、外観をカスタマイズしたりする方法はありますか?」

4

2 に答える 2

2

完全なコードはわかりませんが、appearance プロトコルを試すことができます。これにより、基本的に、ボタンやバーなどの特定の UI 要素のユニバーサル カラー (またはその他のプロパティ) を設定できます。したがって、印刷コントローラーのナビゲーション バーの背景色を設定するには、次のコードを使用します。

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

これにより、アプリ内のすべてのナビゲーション バー (印刷ナビゲーション コントローラーを含む) が赤色になります。その後、バーの外観を設定することで、赤くしたくないものを後で変更できます (つまり、self.navigationController.navigationBar.tintColor)。

ちなみに、これはiOS 7で機能します。iOS 6 には色合いの色プロパティがありません。代わりに背景色を使用していると思います。

于 2014-12-23T03:45:37.530 に答える