渐变颜色到导航栏

时间:2019-06-26 06:33:12

标签: ios swift4.2

我正在尝试将渐变颜色应用于UINavigationBar.appearence()。为此,我遵循了link。但是在添加了CAGradientLayer类的扩展名之后,我编写了下面的代码行,并完成了APPDelegate类中的选项的启动。但是我遇到类似“必须将可选类型UIImage?的值解包为类型UIImage的值”之类的错误。这里使用的是UINavigationbar。不是Navigationcontroller

任何人都可以帮助我做到这一点。

// In AppDelegate Class

let navigationbar=UINavigationBar()
        let flareGradientImage = CAGradientLayer.primaryGradient(on: navigationbar)
        UINavigationBar.appearance().tintColor = UIColor(patternImage: flareGradientImage)



        UINavigationBar.appearance().tintColor = UIColor.white
        UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor:UIColor.white]

1 个答案:

答案 0 :(得分:0)

首先,您的CAGradientLayer扩展将获得导航栏的边界。仅初始化为UINavigationBar()不会起作用,因为其绑定为(0,0,0,0),其次,您需要使用以下代码将其设置为backgroundImage。

UINavigationBar.appearance().setBackgroundImage(flareGradientImage, for:.default)