Swift UI中的导航栏自定义DropShadow

时间:2020-06-01 18:41:30

标签: ios swift swiftui navigationview swiftui-navigationlink

我正在尝试将自定义阴影应用于具有白色背景的NavigationView

我确实尝试过使用UINavigationBar.appearance(),但是在SwiftUI视图中却无法使用。

enter image description here

我正在寻找具有自定义颜色和半径的这种阴影。

任何人都曾经遇到过或曾经遇到过任何问题。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我不确定UINavigationBarAppearance为什么对您不起作用。

我能够使用UINavigationBarAppearance()配置为SwiftUI NavigationViews做到这一点,就像这样:

let appearance = UINavigationBarAppearance()
appearance.configureWithOpaqueBackground()
appearance.shadowColor = nil // or a custom tint color
appearance.shadowImage = UIImage(named: "shadow")
UINavigationBar.appearance().standardAppearance = appearance

这是一个示例图像,您可以用来获取与图像显示的图像相似的图像。要应用自定义色调,请使用上面的shadowColor属性。要获得自定义半径,您需要修改阴影图像。

Shadow Image

这是我执行此操作时SwiftUI NavigationView外观的一个示例。

Result

请注意,必须在创建NavigationView之前应用UINavigationBarAppearance设置。否则,设置将不会生效。