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)
)
我有一个 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)
)