更改选项卡式视图 SwiftUI 的凹槽区域背景颜色
Posted
技术标签:
【中文标题】更改选项卡式视图 SwiftUI 的凹槽区域背景颜色【英文标题】:Changing Notch Area Background Color of Tabbed View SwiftUI 【发布时间】:2020-02-03 23:40:36 【问题描述】:我想在我正在制作原型的应用程序中覆盖默认的暗模式颜色,但我在使用选项卡视图时无法更改凹口的颜色。当我通过以下代码使用没有 TabView 的导航视图时,它可以正常工作:
NavigationView
ZStack
Color(.gray).edgesIgnoringSafeArea(.all)
VStack
Text("Test")
.navigationBarTitle("Nav bar")
这会产生以下结果:
但是,一旦我将它嵌入到 TabView 中,就会发生以下情况:
我可以看到这是因为托管视图控制器具有黑色背景色,但是我找不到更改此颜色的方法。这是它在视图调试器中的样子:
有人知道有没有办法改变它的颜色?必须有一种方法可以覆盖默认的暗模式颜色。也许我的方法不对?
【问题讨论】:
出于好奇,为什么要设置这个?缺口所覆盖的屏幕区域对用户来说是完全不可见的——用户只有在截屏或在应用程序切换器屏幕中才能看到它。 我所说的缺口是指缺口耳朵,正如您在第二个屏幕截图中看到的那样,它在选项卡视图中变黑。许多应用程序确实有自定义的缺口颜色。例如,如果您打开 trello 应用程序,缺口是他们的品牌蓝色,并且他们正在使用标签栏。 Youtube 还具有延伸到凹槽区域的自定义深色模式颜色。 Netflix 甚至设法让图像滚动视图进入缺口。一定有办法做到这一点。 也许这个so answer可以帮助你。 【参考方案1】:只需更改视图的顺序,如下所示
ZStack
Color.gray.edgesIgnoringSafeArea(.all)
TabView(selection: $selection)
// ... tabs here
【讨论】:
以上是关于更改选项卡式视图 SwiftUI 的凹槽区域背景颜色的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI 在 NavigationLink 中更改后退按钮的颜色
为啥这段代码在运行时会崩溃?它只是选项卡式视图中 SwiftUI 中的选择器