防止 iOS 7 UINavigationBar 使用 UIAppearance 为 barTintColor 更改设置动画

Posted

技术标签:

【中文标题】防止 iOS 7 UINavigationBar 使用 UIAppearance 为 barTintColor 更改设置动画【英文标题】:Preventing iOS 7 UINavigationBar from animating barTintColor change with UIAppearance 【发布时间】:2014-05-02 20:12:02 【问题描述】:

我想在没有动画的情况下更改每个UINavigationBarbarTintColor。这可能吗?

ios 7 上,如果 UINavigationBar 是半透明的,barTintColor 的动画会发生变化。如果将半透明设置为NO,则将barTintColor 更改,然后将半透明设置回YES,则将更改条形色调,而无需动画。

在使用UIAppearance 代理时,有什么方法可以实现类似的效果吗?无法使用 UIAppearance 更改半透明度。

【问题讨论】:

【参考方案1】:

首先将barTintColor 设置为nil 似乎有效。奇怪...

[[UINavigationBar appearance] setBarTintColor:nil];
[[UINavigationBar appearance] setBarTintColor:[UIColor magentaColor];

【讨论】:

以上是关于防止 iOS 7 UINavigationBar 使用 UIAppearance 为 barTintColor 更改设置动画的主要内容,如果未能解决你的问题,请参考以下文章

带有纯色的UINavigationBar - ios 7

iOS 7 中 UINavigationbar 下方的 UISegmentedControl

在 ios 7 中如何增加 UINavigationbar 的大小

覆盖 UINavigationBar 时 iOS 7 状态栏变黑

iOS6 和 7 的 UINavigationBar 背景图像

iOS 7 - 使 UINavigationBar 扩展到屏幕顶部