更改ios8扩展导航栏的颜色
我正在开发iOS8应用程序扩展(照片编辑扩展)
我试过这些方法来更新导航栏颜色,但失败了:
[[UINavigationBar appearance] setBarTintColor:[UIColor yellowColor]]; [[UINavigationBar appearance] setTintColor:[UIColor blueColor]]; [[UINavigationBar appearance] setBackgroundColor:[UIColor blueColor]];
它显示一个默认的半透明的灰色导航栏。
有没有人有想法如何更改iOS8扩展中的导航栏颜色?
尝试self.navigationController.navigationBar.barTintColor = [UIColor yellowColor];
第一。 这应该适用于一些主机应用程序,但不是全部。 由于某些主机应用程序在UIAppearance设置中configuration颜色。
我在这里find了一些信息: https : //pspdfkit.com/blog/2017/action-extension/
根据上面的链接,扩展将“从主机应用程序中获取UIAppearance设置”,这比您发送给实例的“setColor”消息具有更高的优先级。
所以你可以做的是configuration扩展的plist:
在NSExtension
字典中,您可以指定关键字NSExtensionOverridesHostUIAppearance
并将其值设置为YES
。 这将使您的扩展覆盖宿主应用程序的UIApprearance设置。 不幸的是,这只适用于iOS 10及更高版本。
希望你觉得有帮助。
尝试将UINavigationBar
的半透明设置为如下所示的NO
,我相信那么它应该开始拾取颜色
[[UINavigationBar appearance] setTranslucent:NO];
以下是UINavigationBar
translucent
属性的Apple文档
我已经把你的代码在appDelegate didFinishLaunchWithOption
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. [[UINavigationBar appearance] setBarTintColor:[UIColor yellowColor]]; [[UINavigationBar appearance] setTintColor:[UIColor blueColor]]; [[UINavigationBar appearance] setBackgroundColor:[UIColor blueColor]]; return YES; }
而作品…