Изменение порядка модификаторов ( itali c или жирный шрифт должен применяться только к тексту )
ForEach(self.testvar) { txt in if txt.show == true {
Text("\(txt.text)")
.bold()
.italic()
.frame(width: txt.width, height: txt.height, alignment: txt.alignment)
.font(txt.textfont)
.foregroundColor(txt.textcolor)
.background(txt.textbackcolor)
.cornerRadius(txt.corner)
}
}
к данным
@State private var testvar = [
Tests(id: 000, text: "Hello World 1", textcolor: .red, textfont: .title, height: 100, width: 300, alignment: .trailing, textbackcolor: Color(.blue).opacity(0.2), corner: 20, show: true, user: "System"),
Tests(id: 001, text: "Hello World 2", textcolor: .green, textfont: .largeTitle, height: 300, width: 300, alignment: .center, textbackcolor: .black, corner: 50, show: true, user: "George"),
]
У меня есть ![enter image description here](https://i.stack.imgur.com/uE5lF.png)
Если вам интересно , почему .largeTitle не itali c, пожалуйста, смотрите Как подать заявку .itali * От 1035 * () до .largeTitle Font?
ОБНОВЛЕНИЕ, чтобы отразить обсуждение
, чтобы иметь возможность изменять стиль на основе значений в вашем массиве, используйте простые Расширение текста
extension Text {
func style(bold: Bool = false, italic: Bool = false) -> Self {
var s = self
if bold {
s = s.bold()
}
if italic {
s = s.italic()
}
return s
}
}
, которое (я надеюсь) не требует пояснений
![enter image description here](https://i.stack.imgur.com/rnES0.gif)