【发布时间】:2020-11-25 11:35:12
【问题描述】:
我正在将我的 UIKit 应用程序传递给 SwiftUI 并努力完成这项工作。
我想在我的双栏 iPad 显示器的每个导航栏上放置一个从左到右的渐变。
我尝试了各种方法,但都没有成功。
【问题讨论】:
标签: ipad swiftui uinavigationbar gradient
我正在将我的 UIKit 应用程序传递给 SwiftUI 并努力完成这项工作。
我想在我的双栏 iPad 显示器的每个导航栏上放置一个从左到右的渐变。
我尝试了各种方法,但都没有成功。
【问题讨论】:
标签: ipad swiftui uinavigationbar gradient
使用 FRIDDAY 的回答 How change background color if using NavigationView in SwiftUI?, 我实现了备受赞赏的渐变:
extension UINavigationController {
override open func viewDidLoad() {
super.viewDidLoad()
let gradient = CAGradientLayer()
gradient.frame = self.view.bounds
gradient.colors = [UIColor(Colors.red).cgColor, UIColor(Colors.orange).cgColor]
gradient.startPoint = CGPoint(x: 0.0, y: 0.5)
gradient.endPoint = CGPoint(x: 1.0, y: 0.5)
let standard = UINavigationBarAppearance()
standard.backgroundImage = gradient.toImage()
let compact = UINavigationBarAppearance()
compact.backgroundImage = gradient.toImage()
let scrollEdge = UINavigationBarAppearance()
scrollEdge.backgroundImage = gradient.toImage()
self.navigationBar.standardAppearance = standard
self.navigationBar.compactAppearance = compact
self.navigationBar.scrollEdgeAppearance = scrollEdge
}
}
【讨论】: