Swift: .font of text() 的条件修饰符
Swift: conditional modifier for .font of text()
我是新手,Swift 还在学习中。我试图根据布尔变量格式化文本。它适用于字体大小和样式。但它不适用于 .bold() 或 .italic 等样式。知道怎么做吗?我也尝试了 ViewModifier,但存在同样的问题。
struct ContentView: View {
@State private var txtFont = false
var body: some View {
VStack{
Spacer()
Button("Toggle the Textproperty") {
self.txtFont.toggle()
}
Spacer()
Text("Hello, World!")
.font(txtFont ? .largeTitle : .none)
.bold()
.italic()
// txtFont ? .bold() : .none <= this line won't work
Spacer()
}
}
}
我遇到了同样的问题,即根据布尔决定将选择器的样式从 DefaultPickerStyle
更改为 SegmentedPickerStyle
。我需要它来使用户界面更加人性化。
任何想法如何实现这一点?
你应该选择 .fontWeight(_ weight: Font.Weight?)
Text("Hello, World!")
.fontWeight(txtFont ? .bold : .regular)
如果您想一次设置多个字体属性,也很简单,
Text("Hello, World!")
.font(txtFont ? .largeTitle.bold().italic() : .none)
我是新手,Swift 还在学习中。我试图根据布尔变量格式化文本。它适用于字体大小和样式。但它不适用于 .bold() 或 .italic 等样式。知道怎么做吗?我也尝试了 ViewModifier,但存在同样的问题。
struct ContentView: View {
@State private var txtFont = false
var body: some View {
VStack{
Spacer()
Button("Toggle the Textproperty") {
self.txtFont.toggle()
}
Spacer()
Text("Hello, World!")
.font(txtFont ? .largeTitle : .none)
.bold()
.italic()
// txtFont ? .bold() : .none <= this line won't work
Spacer()
}
}
}
我遇到了同样的问题,即根据布尔决定将选择器的样式从 DefaultPickerStyle
更改为 SegmentedPickerStyle
。我需要它来使用户界面更加人性化。
任何想法如何实现这一点?
你应该选择 .fontWeight(_ weight: Font.Weight?)
Text("Hello, World!")
.fontWeight(txtFont ? .bold : .regular)
如果您想一次设置多个字体属性,也很简单,
Text("Hello, World!")
.font(txtFont ? .largeTitle.bold().italic() : .none)