【问题标题】:SwiftUI - Large navigation bar is broken when a background color is setSwiftUI - 设置背景颜色时大型导航栏被破坏
【发布时间】:2019-12-10 14:40:29
【问题描述】:

我遇到了一个非常奇怪的错误,不知道如何解决它。我有一个带有导航标题的导航视图。我注意到,当我更改其包含视图的背景颜色时,导航栏与屏幕内容重叠,而不是切换到内联心情。见下文。

如果我删除设置背景颜色的那一行,那么一切正常。有人遇到过类似的情况,您是如何解决的?

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"))
    }
  }
}

【问题讨论】:

    标签: swift swiftui


    【解决方案1】:

    如果您不使用 frame() ScrollView 而是将所有 VStacks 包装在另一个 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"))
          }
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      • 2015-05-14
      • 1970-01-01
      • 2021-11-10
      • 2017-10-22
      相关资源
      最近更新 更多