我正在尝试将渐变颜色应用于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]
答案 0 :(得分:0)
首先,您的CAGradientLayer扩展将获得导航栏的边界。仅初始化为UINavigationBar()不会起作用,因为其绑定为(0,0,0,0),其次,您需要使用以下代码将其设置为backgroundImage。
UINavigationBar.appearance().setBackgroundImage(flareGradientImage, for:.default)