【发布时间】:2020-08-29 00:01:26
【问题描述】:
我也想知道是否有更短的方法来创建网格。我想要 [3,11,36,38,45,52,59,92,96,98,102,108,116,122,126,128,132,165,172,179,186,188,213,221] 绿色,[0,7,14,105,119,210,227,224] 红色,[426,326, 64,70,154,160,168,176,182,192,196,208] 蓝色和 [20,24,76,80,64,88,136,140,144,148,200,204] 紫色。 请注意,我需要能够按位置访问每个文本视图,即如果点击 113,则执行此操作,如果点击 12,则执行其他操作。 这是我的代码。
import SwiftUI
struct CustomTextBorder: ViewModifier {
// the modifier applied to each tile of the board
func body(content: Content) -> some View {
return content
.fixedSize()
.frame(width: 14, height: 14)
.font(Font.custom("Courier", size: 14)).padding(4)
.overlay(
RoundedRectangle(cornerRadius: 5)
.stroke(lineWidth: 2)
.foregroundColor(.blue)
)
.foregroundColor(.black)
}
}
struct ContentView: View {
var body: some View {
VStack {
Group {
HStack(spacing: 0) {
ForEach(0..<15, id: \.self) { row in
Text(row.description)
.modifier(CustomTextBorder())
}
}
HStack(spacing: 0) {
ForEach(15..<30, id: \.self) { row in
Text(row.description)
.modifier(CustomTextBorder())
}
}
HStack(spacing: 0) {
ForEach(30..<45, id: \.self) { row in
Text(row.description)
.modifier(CustomTextBorder())
}
}
HStack(spacing: 0) {
ForEach(45..<60, id: \.self) { row in
Text(row.description)
.modifier(CustomTextBorder())
}
}
HStack(spacing: 0) {
ForEach(60..<75, id: \.self) { row in
Text(row.description)
.modifier(CustomTextBorder())
}
}
HStack(spacing: 0) {
ForEach(75..<90, id: \.self) { row in
Text(row.description)
.modifier(CustomTextBorder())
}
}
HStack(spacing: 0) {
ForEach(90..<105, id: \.self) { row in
Text(row.description)
.modifier(CustomTextBorder())
}
}
HStack(spacing: 0) {
ForEach(105..<120, id: \.self) { row in
Text(row.description)
.modifier(CustomTextBorder())
}
}
}
Group {
HStack(spacing: 0) {
ForEach(120..<135, id: \.self) { row in
Text(row.description)
.modifier(CustomTextBorder())
}
}
HStack(spacing: 0) {
ForEach(135..<150, id: \.self) { row in
Text(row.description)
.modifier(CustomTextBorder())
}
}
HStack(spacing: 0) {
ForEach(150..<165, id: \.self) {row in
Text(row.description)
.modifier(CustomTextBorder())
}
}
HStack(spacing: 0) {
ForEach(165..<180, id: \.self) { row in
Text(row.description)
.modifier(CustomTextBorder())
}
}
HStack(spacing: 0) {
ForEach(180..<195, id: \.self) { row in
Text(row.description)
.modifier(CustomTextBorder())
}
}
HStack(spacing: 0) {
ForEach(195..<210, id: \.self) { row in
Text(row.description)
.modifier(CustomTextBorder())
}
}
HStack(spacing: 0) {
ForEach(210..<225, id: \.self) { row in
Text(row.description)
.modifier(CustomTextBorder())
}
}
}
}
}
}
【问题讨论】: