简体   繁体   English

SwiftUI - 设置背景颜色时,大导航栏会损坏

[英]SwiftUI - Large navigation bar is broken when a background color is set

I'm running into a very weird bug and couldn't figure out how to work around it.我遇到了一个非常奇怪的错误,无法弄清楚如何解决它。 I have a navigation view with a navigation title.我有一个带有导航标题的导航视图。 I noticed that the moment I change the background color of its containing view, the navigation bar overlaps with the screen content instead of switching to inline mood.我注意到当我改变其包含视图的背景颜色时,导航栏与屏幕内容重叠,而不是切换到内联情绪。 See below.见下文。 在此处输入图片说明

If I remove that one line in which I am setting the background color then everything work fine.如果我删除设置背景颜色的那一行,那么一切正常。 Anyone came across something similar and how did you solve it?任何人遇到过类似的事情,你是如何解决的?

struct ContentView: View {
  var body: some View {
    NavigationView {
      ScrollView {
        VStack(alignment: .leading) {
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 10")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 11")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 12")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 13")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 14")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 15")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 16")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 17")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 18")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 19")
        }
        VStack(alignment: .leading) {
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 10")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 11")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 12")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 13")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 14")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 15")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 16")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 17")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 18")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 19")
        }
        VStack(alignment: .leading) {
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 10")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 11")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 12")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 13")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 14")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 15")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 16")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 17")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 18")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 19")
        }
        VStack(alignment: .leading) {
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 10")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 11")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 12")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 13")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 14")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 15")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 16")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 17")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 18")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 19")
        }
        VStack(alignment: .leading) {
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 10")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 11")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 12")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 13")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 14")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 15")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 16")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 17")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 18")
          Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 19")
        }
      }
      .frame(minWidth: 0, maxWidth: .infinity, alignment: .leading)
      .background(Color.red)
      .navigationBarTitle(Text("Title"))
    }
  }
}

If you don't frame() the ScrollView but instead wrap all the VStack s in another VStack and resize this, it works:如果您不frame() ScrollView而是将所有VStack包装在另一个VStack并调整其大小,则它可以工作:

struct ContentView: View {
  var body: some View {
    NavigationView {
      ScrollView {
        VStack{
            VStack(alignment: .leading) {
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 10")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 11")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 12")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 13")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 14")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 15")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 16")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 17")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 18")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 19")
            }
            VStack(alignment: .leading) {
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 10")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 11")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 12")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 13")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 14")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 15")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 16")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 17")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 18")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 19")
            }
            VStack(alignment: .leading) {
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 10")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 11")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 12")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 13")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 14")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 15")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 16")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 17")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 18")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 19")
            }
            VStack(alignment: .leading) {
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 10")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 11")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 12")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 13")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 14")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 15")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 16")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 17")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 18")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 19")
            }
            VStack(alignment: .leading) {
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 10")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 11")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 12")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 13")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 14")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 15")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 16")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 17")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 18")
              Text("djsgfjsdgf jhdjfhjhjh jdhfsjh 19")
            }
        }
        .frame(minWidth: 0, maxWidth: .infinity, alignment: .leading)
        .background(Color.red)
        .navigationBarTitle(Text("Title"))
      }
    }
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM