SwiftUI - 始终左(前导)对齐 navigationBarItems(leading: Text(""))

SwiftUI - Always left (leading) align navigationBarItems(leading: Text(""))

我有一个 NaivgationView,它具有动态前导项。也就是说,当用户点击按钮时,其文本会更新。所以它并不总是相同的。

此代码与我的项目具有相似的功能。

struct ContentView: View {
    @State var selectedDay: String = "Wednesday"
    let days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
    var body: some View {
        NavigationView {
            VStack {
                List {
                    ForEach(0..<days.count) {day in
                        Button(action: {
                            self.selectedDay = days[day]
                        }, label: {
                            Text(days[day])
                        })
                    }
                }
            }
            .navigationBarItems(leading: Text($selectedDay.wrappedValue))
        }
    }
}

我希望文本必须始终左对齐。但是如果一个文本的字母比第一个少,那么它就不在左边。例如,在上面的代码中,Wednesday 位于最左边,但星期五不在。它领先的一方有16分。那么如何左对齐文本?


我也用过这段代码,但还是有同样的问题。

VStack(alignment: .leading) {
     Text($selectedDay.wrappedValue)
}

您可以为文本添加框架并设置其对齐方式:

   .navigationBarItems(leading:
                            Text(selectedDay)
                                .frame(width: 100, alignment: .leading)
    )