如何更改此状态下“后退”按钮和 ToolbarItem 的颜色:
并在工具栏背景显示时(即用户向下滚动时)单独更改它们的颜色:
理想情况下,我希望它们在第一个屏幕截图中为白色,在第二个屏幕截图中为默认蓝色。
这是基本代码:
var body: some View {
NavigationView {
//
}
.toolbar {
ToolbarItem(placement: .topBarTrailing) {
Button(action: {
//
}, label: {
Image(systemName: "ellipsis")
})
}
}
}
如果您的应用程序中只有两个主题,请使用 @Environment(.colorScheme),它随 SwiftUI 一起提供...
import SwiftUI
struct ContentView: View {
@Environment(\.colorScheme) var colorScheme
private var isDarkMode: Bool {
return colorScheme == .dark
}
var body: some View {
NavigationStack {
VStack {
Text("Hello, Stackoverflow!")
.font(.title)
.foregroundColor(isDarkMode ? .red : .blue)
}
.toolbar {
ToolbarItem(placement: .principal) {
Text(isDarkMode ? "Dark mode" : "Light mode")
.font(.headline)
.foregroundColor(isDarkMode ? .red : .blue)
}
ToolbarItem(placement: .navigationBarTrailing) {
Button {
// Action to perform
print("Button was tapped")
} label: {
Image(systemName: "heart.fill")
.font(.headline)
.foregroundColor(isDarkMode ? .red : .blue)
}
}
}
}
}
}
#Preview {
NavigationStack {
ContentView()
}
}
是的,如果最低应用程序版本是 iOS 16,请使用 NavigationStack 而不是 NavigationView;如果较低,请使用 NavigationView...