我需要一个标题位于导航栏的左侧。我使用以下代码:
.toolbar {
ToolbarItem(placement: .navigationBarLeading) {
Text("Title")
.foregroundColor(.black)
}
}
Run Code Online (Sandbox Code Playgroud)
问题是它显示为蓝色并显示为按钮。是否有可能以某种方式将其颜色更改为黑色?foregroundColor,accentColor不工作。另外,我尝试在Text("Title")内部使用禁用按钮。但在那种情况下它显示为灰色。没有颜色,也没有PlainButtonStyle被应用。
paw*_*222 14
默认情况下,如果您添加单个,Text它会显示为Button.
然后,要更改其颜色,您需要设置accentColorNavigationView 的(因为此按钮显示在导航栏中):
struct ContentView: View {
var body: some View {
NavigationView {
Text("Test")
.toolbar {
ToolbarItem(placement: .navigationBarLeading) {
Text("Title")
}
}
}
.accentColor(.black)
}
}
Run Code Online (Sandbox Code Playgroud)
如果您不想更改accentColor整个 NavigationView 中的 ,您可以执行以下操作:
NavigationView {
VStack {
//...
}
.accentColor(.accentColor)
}
.accentColor(.black)
Run Code Online (Sandbox Code Playgroud)
但是,如果您希望它Text表现得像 aText而不是像 aButton您可以使用以下技巧:
ToolbarItem(placement: .navigationBarLeading) {
HStack {
Text("Title")
Text("")
}
.foregroundColor(.red)
}
Run Code Online (Sandbox Code Playgroud)
使用自定义样式的空菜单而不是更改重音颜色。
.toolbar {
ToolbarItem(placement: .navigationBarTrailing) {
Menu(content: {
}, label: {
Text("Hello")
})
.menuStyle(RedMenuStyle())
}
}
struct RedMenuStyle : MenuStyle {
func makeBody(configuration: Configuration) -> some View {
Menu(configuration)
.font(Font.system(size: 50))
.foregroundColor(Color.red)
}
}
Run Code Online (Sandbox Code Playgroud)
如果您只显示文本,请使用 navigationBarItems。
.navigationBarItems(leading: Text("Hello")
.foregroundColor(Color.red)
.font(Font.system(size: 50)))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3274 次 |
| 最近记录: |