导航栏的渐变颜色

Gradient color to Navigationbar

我正在尝试将渐变颜色应用于 UINavigationBar.appearence()。为此,我遵循了link。但是在添加 CAGradientLayer class 的扩展后,我在 APPDelegate class 中编写了以下代码行并完成了带有选项的启动。但是我收到类似 "Value of optional type UIImage? must be unwrapped to a value of type 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]

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

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