UIPrintInteractionController 半透明条问题

Posted

技术标签:

【中文标题】UIPrintInteractionController 半透明条问题【英文标题】:UIPrintInteractionController Translucent Bar Issue 【发布时间】:2013-04-17 07:25:58 【问题描述】:

UIPrintInteractionController 在 iPhone 中作为模式视图呈现时,然后我在顶部得到半透明条。我希望它是不透明的,以便背景视图的导航栏不可见。请参阅屏幕截图以获得更好的说明。 提前致谢。

【问题讨论】:

默认为不透明条。您应该发布一些您认为会造成此问题的代码。你能按UIPrintInteractionController的取消按钮吗?这会忽略它吗? @viral:默认情况下它是不透明的,但我们的应用程序有用于导航控制器的半透明条。这样打印视图栏就显得半透明了。 @iNeo 您是如何为您的应用程序创建不透明条的?它应该排除任何不属于您的应用程序的导航栏。 【参考方案1】:

当您要从父视图控制器显示模态视图时,隐藏导航栏,当模式视图被关闭时,使导航栏不隐藏。

【讨论】:

虽然我同意您的回答可以解决问题,但我认为这不是正确的方法。 @vrk:您的解决方案在顶部显示了一个黑条。虽然我需要默认的蓝色样式栏。【参考方案2】:

由于您还没有发布任何代码,所以答案不能准确。

但是,您可以尝试在整个应用程序中更改导航栏的外观。

也许这可以帮助你实现这一点:(把它放在你alloc/init你的navigationcontrollerAppDelegate.m之后)

if ([UINavigationBar respondsToSelector:@selector(appearance)]) 
   
    // For ios 5.0 and above
    [[UINavigationBar appearance] setBarStyle:UIBarStyleBlackOpaque];
    // Black Opaque or whatever your choice is
 
else 
   
    // For iOS below 5.0
    self.navController.navigationBar.barStyle = UIBarStyleBlackOpaque;
    // Black Opaque or whatever your choice is

应用后告诉我结果。

【讨论】:

在我们的应用程序中,我们在整个应用程序中都有半透明的导航栏。但是对于这个打印屏幕,我们需要它是不透明的。【参考方案3】:

六年后,我在 iOS 11 中遇到了这个问题!我不得不添加这个:

[[UINavigationBar appearance] setTranslucent:NO]

我没有在我的应用程序的任何地方将导航栏设置为半透明,但我想现在这是默认设置?

如果您想在应用程序的其他地方使用半透明导航栏,我认为您可以实现 UIPrintInteractionControllerDelegate 并在弹出窗口关闭时使用 printInteractionControllerWillDismissPrinterOptions 再次将半透明设置回 YES。

【讨论】:

以上是关于UIPrintInteractionController 半透明条问题的主要内容,如果未能解决你的问题,请参考以下文章