【问题标题】:Navigation bar , remove strange space导航栏,去除奇怪的空间
【发布时间】:2020-07-17 02:58:50
【问题描述】:

在我的项目中,我尝试使用 NavigationView 删除顶部栏 Rectangle() 和列表之间的丑陋空间。

我不知道为什么在这 2 个 View SwiftUi 之间创建空间。

如下图所示,当我添加 NavigationView 后,它会出现一个奇怪的空间。

我希望我的 NavigationBarITEM 触摸我的 Rectangle()

如果我使用 offset() 它可以工作,但听起来很奇怪.. 默认情况下它们应该在 VStack 内

谢谢

   VStack{
                        Rectangle()
                            .frame(height: g.size.height/12)
                            .foregroundColor(.blue)
                            .edgesIgnoringSafeArea(.top)
                        NavigationView{
                            List{
                                ForEach(self.dm.storage) { item in
                                    Text(item.airportData.aptICAO)
                                }

                            }  .navigationBarItems(trailing: EditButton())
                        }
                    }

【问题讨论】:

    标签: swift xcode listview swiftui navigationview


    【解决方案1】:

    看起来您在视图层次结构中已经有上面的NavigationView,所以您不需要第二个

    VStack{
        Rectangle()
            .frame(height: g.size.height/12)
            .foregroundColor(.blue)
            .edgesIgnoringSafeArea(.top)
                                         // << no additional NavigationView needed
            List{
                ForEach(self.dm.storage) { item in
                    Text(item.airportData.aptICAO)
                }
    
            }  .navigationBarItems(trailing: EditButton())
    }
    

    【讨论】: