自定义导航栏,iOS6的按钮兼容性问题

时间:2014-01-12 16:19:55

标签: ios objective-c uinavigationbar uinavigationitem

我正在处理的应用程序有一个自定义导航栏。在我的AppDelegate.m中,我完成了以下操作:

  • setBackgroundImage已使用我自己的.png图像替换导航栏的默认颜色;
  • setTitleTextAttributes:已设置为白色;
  • setTintColor:已设置为白色;

    - (void)customizeUserInterface {
        [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navBar"] forBarMetrics:UIBarMetricsDefault];
        [[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],NSForegroundColorAttributeName, nil]];
        [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
    }
    

在iOS 7中一切看起来都很好,但在运行iOS 6的设备上,导航栏按钮在白色上是白色的,因为色调颜色会改变iOS 7中按钮的文本(因为所有按钮都在iOS 7中) - 文本),在iOS 6中设置色调颜色调整按钮的背景,文本保持白色。所以在iOS 6中,导航栏按钮是白色的,带有白色文本。

我更喜欢我的表在iOS 7中看起来如何,而不是仅因为与iOS 6的向后兼容性不合作而不改变它。

有没有人能解决这个问题。有没有办法以编程方式更改导航栏圆形录制按钮的背景颜色或圆形录制按钮内的文本 - 所有这些都不会改变iOS 7中的外观?

或者有条件设置这些更改吗?换句话说,我是否可以通过编程方式将自定义导航栏设置为仅针对iOS 7+的设备显示,并在此之前使用所有iOS版本的默认值?

还是有其他聪明的东西,我没想到的?

谢谢!

1 个答案:

答案 0 :(得分:0)

嘿,以编程方式控制你的东西真的很可能。你有办法在ios7&绝对是你为ios6做的。

以下是要检查版本的link

现在你可以有条件地做事了。

希望有所帮助。