Я использую ForEach для создания цикла. Однако я хочу сделать Rectangle условно в зависимости от количества циклов. Например, не отображать прямоугольник при последней итерации цикла.
Какой правильный синтаксис для этого?
Я ищу что-то вроде этого (нерабочий псевдокод)
ForEach(arrayOfThings, id: \.title) { thing in
// Stuff that happens on every iteration of loop
// Conditional section
if (thing.endIndex-1) {
Rectangle()
.frame(width: 100, height: 1, alignment: .bottom)
.foregroundColor(Color("666666"))
}
}
Я знаю, что есть такие вещи, как for (offset, element) in array.enumerated() { }
, но вы не можете использовать их в представлениях. Интересно, есть ли в ForEach удобная функция для решения этой проблемы?
В настоящее время я делаю это для обхода проблемы:
ForEach(0..<arrayOfThings.count) { i in
// Stuff that happens on every iteration of loop
// Conditional section
if (i = self.arrayOfThings.count-1) {
Rectangle()
.frame(width: 100, height: 1, alignment: .bottom)
.foregroundColor(Color("666666"))
}
}