为UINavigationBar设置背景颜色是很常见的需求,一般设置导航栏背景颜色操作如下,直接设置barTintColor即可。
navigationController?.navigationBar.barTintColor = UIColor.red
效果如下:
我们也可以通过设置导航栏的背景图片来设置背景颜色,可以达到相同的效果:
navigationController?.navigationBar.setBackgroundImage(UIImage(named: "background"),
for: .default)
如果想要设置渐变的颜色,那么如何操作呢?思路也简单,获取渐变颜色,那么需要使用CAGradientLayer,但是为layer设置来渐变之后,如何设置呢?其实就是通过绘制layer得到对应的image,然后通过image设置导航栏的背景图片。具体操作如下,设置红白的渐变颜色: