【发布时间】:2020-02-12 08:35:15
【问题描述】:
我目前正在尝试将所有可能的修饰符直接放入一个数组中,然后通过 forEach 调用它们。它也适用于大多数人,不幸的是框架(高度,宽度,对齐)不是我想要的。文本和框架应同时对齐。但无论我怎么尝试,它都不起作用。另外,我也没有以这种方式整合 .bold 和 .italic 。 我知道还有其他方法。如果有可能,我希望能够以这种方式包含所有修饰符。这可能吗?
import SwiftUI
struct Tests: Identifiable {
var id: Int
var text: String
var textcolor: Color
var textfont: Font
var height: CGFloat
var width: CGFloat
var alignment: Alignment
var textbackcolor: Color
var corner: CGFloat
var show: Bool
var user: String
}
struct ContentView: View {
@State private var testvar = [
Tests(id: 000, text: "Hello World 1", textcolor: .red, textfont: .title, height: 100, width: 300, alignment: .trailing, textbackcolor: .blue, corner: 20, show: true, user: "System"),
Tests(id: 001, text: "Hello World 2", textcolor: .green, textfont: .largeTitle, height: 100, width: 300, alignment: .center, textbackcolor: .black, corner: 50, show: true, user: "George"),
]
var body: some View {
NavigationView {
VStack {
ForEach(self.testvar) { txt in if txt.show == true {
Text("\(txt.text)")
.frame(width: txt.width, height: txt.height, alignment: txt.alignment)
.font(txt.textfont)
.foregroundColor(txt.textcolor)
.background(txt.textbackcolor)
.cornerRadius(txt.corner)
//.bold?
//.italic?
} }
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
【问题讨论】: