![](/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.