![](/img/trans.png)
[英]SwiftUI for MacOS (not Catalyst) - how to add buttons to navigation bar?
[英]How to re-position Navigation Bar Buttons in SwiftUI
我已经实现了navigationBarTitle
,我正在尝试实现一个navigationBarItem
,但是默认的 position 看起来很奇怪。
我希望 position 的 Next 按钮与navigationBarTitle
一致。 我能够用这段代码完成一些事情:
.navigationBarTitle(Text("Names"))
.navigationBarItems(trailing:
Button(action: {
print("tapped")
}) {
Group {
Text("Next")
}.position(x: 0, y: 60).background(Color.purple)
})
但是问题在于按钮没有移动,因此在显示“下一步”的位置不可点击。 (我突出显示了 position 紫色来演示。)
有没有办法以更清洁的方式实现这一目标? 或者我可以实现的其他方法或堆栈,同时保持navigationBarTitle
Large Tile 看起来在 SwiftUI 中? 谢谢!
您可以将按钮包装在ZStack
中,并且 position 将Button
包装在ZStack
中,如下所示:
import UIKit
import PlaygroundSupport
import SwiftUI
struct ContentView: View {
var body: some View {
NavigationView {
Text("Names")
.navigationBarTitle(Text("Names"))
.navigationBarItems(trailing:
ZStack {
Button(action: {
print("tapped")
}) {
Group {
Text("Next")
}.background(Color.purple)
}.position(x: 0, y: 60)
})
}
}
}
let viewController = UIHostingController(rootView: ContentView())
PlaygroundPage.current.liveView = viewController
我在上面的操场示例中尝试过它并且它有效:
编辑:
除非您触摸并拖动,否则这似乎会使按钮无响应:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.