iOS 13, Swift 5.
** РЕШЕНО см. Комментарий **
Попытка реализовать это весь день. Я думаю, что мне может понадобиться более быстрый компьютер. Продолжайте получать сообщение об ошибке. Компилятор не может проверить это выражение в разумные сроки; попробуйте разбить выражение на отдельные подвыражения.
Как мне это упростить? Код рисует сетку и, в зависимости от значений в массиве textColors, рисует блоки разными цветами. Это не так сложно ... но это вне меня.
VStack(alignment: .center, spacing: 5) {
ForEach((0 ..< 4).reversed(), id: \.self) { row in
HStack(alignment: .center, spacing: 5) {
ForEach((0 ..< 4).reversed(), id: \.self) { column in
VStack {
if textColors[(column + (row*4))] != Color.clear {
Text(self.textText[(column + (row*4))])
.font(Fonts.futuraCondensedMedium(size:48))
.frame(width: 64, height: 64, alignment: .center)
.background(Color.red)
} else {
Text(self.textText[(column + (row*4))])
.font(Fonts.futuraCondensedMedium(size:48))
.frame(width: 64, height: 64, alignment: .center)
.background(InsideView(rect: self.$rect))
}
}
}
}
}
}
Я пытался создать представления в методе ForEach, но безрезультатно. Циклы ForEach в SwiftUI болезненны. Действительно больно.
Проблема в выражении (колонка + (строка * 4)), которое кажется слишком большим для Xcode! И все же SwiftUI не позволит мне сделать этот расчет где-либо еще в этом блоке кода.