当前位置: 首页 > 知识库问答 >
问题:

ios - swiftUI 中如何将 view 添加到 navigationbar 中?

钱志
2024-04-10

我在用 swiftUI 写一个列表界面,代码如下

struct ListView: View {    @State private var showMenu = false    @State private var persons = ["person 1", "person 2", "person 3"] // 用于演示的假数据    var body: some View {        NavigationView {            VStack {                List {                    ForEach(persons, id: \.self) { person in                        Text(person)                            .listRowSeparator(.hidden)                            .padding()                            .onTapGesture {                                //  点击进入详情                            }                    }                }                .background(Color.white)                .statusBar(hidden: false)            }            .navigationBarItems(trailing:                Button(action: {                    showMenu.toggle()                }) {                    Image(systemName: "line.horizontal.3")                        .font(.system(size: 22))                        .foregroundColor(.black)                }            )            .background(Color.white)            .sheet(isPresented: $showMenu) {                MenuView()            }            .navigationBarTitle("", displayMode: .inline) // 隐藏导航栏标题            .navigationBarColor(backgroundColor: .white, tintColor: .black) // 设置导航栏颜色            .navigationBarBackButtonHidden(true) // 隐藏返回按钮            .overlay(                TitleBlock()                    .frame(width: 180, height: 40)            )        }    }}// 分类的标题struct TitleBlock: View {    var body: some View {        HStack(spacing: 0) {            Text("Age")                .frame(maxWidth: .infinity)            Text("Sex")                .frame(maxWidth: .infinity)            Text("Grade")                .frame(maxWidth: .infinity)        }        .frame(maxWidth: .infinity, maxHeight: .infinity)        .background(Color(hex: "f1f1f1"))        .cornerRadius(4)    }}

通过 overlay 将 TitleBlock 这个 view 添加到顶部导航的 bar 上,但现在出现的问题是,这个 TitleBlock view 不显示在 navigationBar 上,而是水平居中,垂直居中的显示在整个界面的中间。请问正确的在 navigationBar 上添加这个 view 的方式是什么呢?

我尝试通过绝对位置来实现,但也一样的问题。

共有1个答案

张岳
2024-04-10

试一试对齐方式 alignment

 类似资料:
  • 我正在尝试在IntelliJ中设置一个简单的“Hello World”Spock测试--似乎无法启动。我做了以下工作: null 此时,我在单选按钮下面得到一个“Spock library not found in the Module”消息。这里没有建议的安装解决方案。是否需要对模块进行某种Maven设置?这对于Groovy设置是不必要的,因为它不需要Maven中的依赖项。

  • 问题内容: 显然,更改NavigationBar的高度在iOS 11 中面临着一种新方法。在以前的iOS版本中,可以通过 隐藏默认navigationBar并添加带有自定义框架的新控件来更改navigationBar的高度: 但似乎它无法在iOS 11 xCode beta中运行。无论新高度是多少,它始终保持在44。 有谁知道如何解决这个问题? 问题答案: 您的代码运行良好,没有错。如果更改 背景

  • 我想使用jar库http://jcodec.org/正在处理。我知道有很多关于库的教程,但没有一个足够清晰,让我能够理解。我已经拖放了jcodec-0.1.5。jar创建了一个名为“code”的文件夹,其中包含文件jcodec-0.1.5。罐子在里面,但是当我想用的时候 我还在 “未定义构造函数FrameGrab(文件)。” 我需要进口什么东西吗?如果是,在“导入”后我必须键入什么?非常感谢您的帮

  • 问题内容: 它可以在默认键盘上正常工作,但是我无法在数字键盘上使用它。 有任何想法吗? 问题答案: 据我所知,您不能在键盘部分上添加“完成”按钮。您必须在或中添加一个(如果您使用的是)。 查看文档以获取更多信息。 编辑 :检查此问题以获取有关如何执行此操作的示例。 编辑2 :Swift中的类似示例。 编辑3 :来自编辑2的代码,因为链接可能过期。 斯威夫特4.2

  • 问题内容: 如何将应用内购买添加到iOS应用?所有细节都是什么,是否有示例代码? 这意味着可以将各种应用内购买添加到iOS应用中 问题答案: Swift用户可以查看有关此问题的My SwiftAnswer。或者,查看YedidyaReiss的Answer,它将这个Objective-C代码转换为Swift。 Objective-C用户 该答案的其余部分用Objective-C编写 App Stor

  • 问题内容: 在我的Java桌面应用程序中,我有一个TableView,我想在其中包含CheckBoxes列。 我确实在http://www.jonathangiles.net/javafx/2.0/CellFactories/上找到了完成的位置,但是由于无法下载,因为我不知道Jonathan Giles会多久回复我的电子邮件,所以我认为d问… 如何将CheckBox放在TableView的单元格中

  • 问题内容: 我试图在代码中添加到xml定义的布局中。我有一个xml工作表,其中定义了很多。但是我必须在代码中添加一些视图,因此在中创建一个: 在这种布局中,我想添加我的: 但是我只收到以下错误消息: 我该怎么做? 问题答案: 尝试使用 还请确保你正在创建的布局参数是LinearLayout.LayoutParams …

  • 问题内容: 我正在尝试显示带有的。当我添加行时: 我收到一个错误: 致命错误:解开Optional值时意外发现nil 这通过呈现在我的内部。 我已经从这里下载了代码,并且工作正常。我将该方法复制并粘贴到我的代码中,但它中断了。最后一行的 自我 存在没有影响。 问题答案: 因此,我开始检查看看我的代码与工作代码之间可能有什么不同。我注意到我的ViewController扩展了 显然这意味着我需要设置