簡體   English   中英

如何在 SwiftUI 中重新定位導航欄按鈕

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM