gpt4 book ai didi

objective-c - 如何调整 UINavigationBar tintColor 以补偿 iOS6 中新的渐变效果?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:19:46 25 4
gpt4 key购买 nike

在我的应用中,我将导航栏着色为深蓝色。
iOS6 中新的渐变效果使导航栏看起来更亮(见下文)。

UINavBar tints in iOS5 and iOS6

如果我将颜色调整得更深以补偿 iOS6,它在 iOS5 中会显得太暗。

使它们看起来相同(或几乎相同)的最佳方法是什么?

检测操作系统版本并设置不同的色调?使用背景图像?或者是否有可用于更改渐变行为的样式设置?

最佳答案

实现此目的的一种方法是使用背景图像并使用 iOS 5.0 中引入的外观代理对其进行设置。

如果您创建一个薄垂直切片的图像(例如,宽度为 1 像素,高度为 44 像素,以及双倍的视网膜图像)并将其添加到您的包中,那么您可以为所有导航设置导航栏背景图像使用以下方法在您的应用程序中显示一次:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navigationBarImage"] forBarMetrics:UIBarMetricsDefault]; 

如果您在应用启动时运行该行代码,例如在您的 appDelegate 的以下方法中

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

然后您的应用程序中的每个导航栏看起来都一样。使用这样的图像的好处是,无论操作系统版本如何以及将来可能会或不会发生的任何更改,您的应用程序看起来总是一样的。

请注意,Appearance 代理 API 仅在 iOS 5.0 中添加,因此它不适用于旧版本的 iOS。要真正了解外观代理,我建议您观看 WWDC 2011 视频第 114 节。

关于objective-c - 如何调整 UINavigationBar tintColor 以补偿 iOS6 中新的渐变效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12519789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com