SwiftUI 导航栏背景颜色不一致

时间:2021-03-03 06:27:36

标签: swiftui swiftui-navigationview

iOS 14.4 和 Xcode 12.4

我正在尝试为导航栏的背景着色,但无法正常工作。以下是我正在做的示例应用:

import SwiftUI

struct ContentView: View {
  var body: some View {
    NavigationView {
      ZStack{
        //Nav Background Color
        Color.blue.ignoresSafeArea()
        VStack{
          ZStack{}
          .toolbar{
            ToolbarItem(placement: .navigationBarLeading) {
              //...
            }
            ToolbarItem(placement: .principal) {
              Text("Automatic")
            }
            ToolbarItem(placement: .navigationBarTrailing) {
              //...
            }
          }
          Text("Content")
        }
      }
      //This is where I'm making changes...
      .navigationBarTitleDisplayMode(.automatic)
      //.navigationBarTitleDisplayMode(.inline)
      .ignoresSafeArea()
    }
  }
}

当我将 .navigationBarTitleDisplayMode 设置为 .automatic 时,我会得到一个彩色导航栏(这正是我想要的)。但缺点是它使用了大标题样式并将我的内容向下推。

enter image description here

当我将其设置为.inline(这是我想要的标题样式)时,导航栏继承了默认系统颜色:

enter image description here

为什么会这样?如何在仍然获得我想要的导航栏背景颜色的同时获得 .inline 导航栏标题?我希望不必恢复到 UIKit。

0 个答案:

没有答案