这是一个 UINavigationController
子类,提供了一个更加生动、明亮的 UINavigationBar
。
iOS 7.1 更新:这次更新再次影响了 UINavigationBar 的颜色方案。这次,似乎任何对 Alpha 通道的修改都被忽略了。这对于我们来说有很大的阻碍,因为我们需要编辑这个值来显示底下的颜色层。我目前正在寻找一个解决方案。
iOS 7.0.3 更新:看起来这个更新改变了导航栏和工具栏的半透明效果。模糊度取决于颜色的 alpha
值。不幸的是,没有神奇的公式可以使在 iOS 7.0.2 和更早版本中制作的颜色与 iOS 7.0.3 中的颜色相同。我发现将导航栏的 alpha 值设置为大约 0.6f-0.8f
可以获得最佳效果;也就是说,您仍然可以获得半透明效果,但代价是鲜艳的颜色。直到我们找到更优解决方案之前,已经移除了额外的颜色层。如果您仍在运行 iOS 7 的早期版本,此库仍然适用!
随着 iOS 7 的发布,苹果公司将半透明效果引入了整个操作系统。作为开发者,我们(在某种程度上)负责利用这些新库来使我们的应用程序与操作系统保持一致。通过引入高斯和半透明导航栏,我们能够为我们展示的视图提供更多的动态上下文。
然而,存在一个细微的缺陷;许多颜色选项相当不饱和。假设您想要一个轻微的、丰富的蓝色半透明导航栏。使用原生类,您会得到这个效果(在白色背景下)
这并不是您所预期的。您可以尝试不同的红色、绿色和蓝色的组合值,但仍无法得到您想要的颜色。这是因为苹果已决定将颜色的饱和度降低大约 40%。此外,它还从其背后继承了某种颜色。因此,我们得到了一个非常淡的蓝色,这并不是我们所想要的。
这就是这个库的用武之地。
这个库对 UINavigationBar
做了一个简单的补充。通过在导航栏背景层上方直接添加一个层,我们可以增强导航栏的鲜艳度。这个层采用了与导航栏 barTintColor
相同的颜色,透明度为 50%。这可以更改,但我发现这个百分比是鲜艳和半透明之间最佳的混合。使用这个库,我们得到
这仍然不能让我们实现绝对的颜色;然而,这使我们朝着正确的方向迈出了许多步骤。
UINavigationController
与 CRNavigationController
barTintColor
vs.
barTintColor
vs.
要运行示例项目,首先克隆仓库,然后从示例目录运行 pod install
。
通过调整开关来更改CRNavigationBar
或视图的backgroundColor
的颜色,以了解特定颜色在某种barTintColor
上可能会有多大的影响。还以十进制和十六进制格式显示了RGB值,供您方便使用,如果决定将其作为查找完美颜色的工具。
我不敢独占这一解决方案的荣耀。这是我在 Stack Overflow 上的共同努力,由我和许多人共创。欢迎您将此库用于您的项目。调整设置,找到与您的应用最搭配的色彩搭配!我只要求您保持样板代码不变,并在您决定发布的任何应用中提及使用此库。
我想这里也应该有。臭名昭著的MIT授权
特此授予任何获得此软件及其相关文档文件(以下简称“软件”的副本)的人免费处理的权限,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供的人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或实质部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性。在任何情况下,作者或版权持有者不对任何索赔、损害或其他责任(无论因合同、侵权或其他行为而产生)承担责任,无论此类损害或责任源自、由于或在任何与软件或软件的使用或其他交易有关的情况下。