首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SwiftUI NavigationView删除空白

SwiftUI NavigationView删除空白
EN

Stack Overflow用户
提问于 2020-07-09 16:14:04
回答 2查看 2.5K关注 0票数 4

我有一个HomeView

代码语言:javascript
运行
复制
NavigationView {
    ZStack {
        VStack {
             NavigationLink(destination: ProfileView()) {
                 if session.userInSession?.activated != 1 {
                     completionText(message: "Complete Your Profile")
                 } else {
                     completionText(message: "Edit Your Profile")
                 }
             }
        }
    }
}

我的ProfileView没有包装在导航视图中,也没有条形标题:

代码语言:javascript
运行
复制
VStack {
    ScrollView(showsIndicators: false) {
        ...
    }
}

但是我的ProfileView也可以从我的SettingView中访问

代码语言:javascript
运行
复制
NavigationView {
    VStack(alignment: .leading) {
        List {
            NavigationLink(destination: ProfileView()) {
            }
        }
    }
}

当我从设置屏幕访问我的ProfileView时,它显示得很好。但是,当我从我的HomeView访问它时,它在顶部创建了空白:

当我浏览设置时,很好:

如何删除上面的空白?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-09 16:32:58

看起来您的HomeView/s NavigationView.navigationBarTitleDisplayMode(.large)或automatic,这在默认情况下是.large,但是SettingView.navigationBarTitleDisplayMode(.inline) (考虑到< Setting下面的分隔符),因此可以看到不同高度的标题栏。

当然,这是假设,因为没有详细的代码,但是可能的解决方案是为ProfileView添加显式模式,例如:

代码语言:javascript
运行
复制
VStack {
   ScrollView(showsIndicators: false) {
   }
}.navigationBarTitleDisplayMode(.inline)     // << here !!
票数 8
EN

Stack Overflow用户

发布于 2020-07-09 16:16:27

这个空间可能是NavigationView的空标题。

您可以尝试隐藏导航栏标题:

代码语言:javascript
运行
复制
NavigationView {
    ZStack {
        ...
    }
    .navigationBarTitle("")
    .navigationBarHidden(true)
}

作为一个测试,尝试设置.navigationBarTitle("Some title"),看看您是否仍然看到这个空空间,或者它是否被某些标题文本所取代。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62819209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档