ios7导航栏左UIBarButtonItem问题

Posted

技术标签:

【中文标题】ios7导航栏左UIBarButtonItem问题【英文标题】:ios7 navigationbar left UIBarButtonItem issue 【发布时间】:2013-10-09 07:33:46 【问题描述】:

我正在将我的大项目更新到 ios7 。当我更新左侧导航按钮时有问题。 我不明白什么是问题。

ios6:左键图片没问题:

ios7:左键有问题

当我去下一个视图控制器后退按钮在 ios7 中也有同样的问题:

我正在使用这张图片作为菜单:link。图像是透明的。

如何在 ios7 中解决这个问题。 这是一个大项目,我无法共享所有代码。当我阅读文章时,文章说它的问题是 setTintColor。对 ?

对不起我的英语。

谢谢。

【问题讨论】:

iOS 7 UIBarButton back button arrow color 您需要使用图像(如此图像)创建 UIButton 并将其添加到 UIBarButtonItem。在 ios7 UIButtons 和 barbuttons 中只显示这样,它是默认的。 @AdilSoomro 在我尝试之前但它不起作用。 【参考方案1】:

我更改了全局色调,并使用这种方式来保持 UIBarButtonItem 正常。

#define kColorGlobalTint [UIColor redColor]
UIColor *defaultColor = [UIView appearanceWhenContainedIn:[UINavigationBar class], nil].tintColor;
[[UIView appearance] setTintColor:kColorGlobalTint];
[[UIView appearanceWhenContainedIn:[UINavigationBar class], nil] setTintColor:defaultColor];

[[UINavigationBar appearance] setBarTintColor:kColorGlobalTint];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];

【讨论】:

【参考方案2】:

左上角导航栏按钮中使用的图像颜色是什么?您可以尝试更改以下内容。

    给条形按钮项 tint = clear color 将条形按钮项下的按钮项色调设为默认,并将其背景设为清晰颜色。 将按钮项的 Alpha 值更改为 1。

【讨论】:

我编辑了问题。你可以看到我的图片有问题。图片是透明的 我也想支持ios7早期版本。它对我不起作用。我解决了。我要分享我的答案【参考方案3】:

我解决了问题。我添加到 viewDidLoad 方法

 if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)

  [self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];

else

   [self.navigationController.navigationBar setTintColor:[UIColor colorWithRed:.694 green:.164 blue:.105 alpha:1.0f]];

【讨论】:

以上是关于ios7导航栏左UIBarButtonItem问题的主要内容,如果未能解决你的问题,请参考以下文章

具有自定义视图的 UIBarButtonItem 在 iOS 7 上用作左侧或右侧导航栏项目时未正确对齐

iOS UIBarButtonItem 对齐方式

删除 iOS UIBarButtonItem 的标题文本

UIBarButtonItem 标题文本始终是全局色调颜色

带有纵向和横向图像的 UIBarButtonItem 可能会显示横向的纵向图像

iOS 7 过度导航栏按钮填充