Я пытаюсь реализовать представление, которое может изменить количество отображаемых элементов (созданных циклом ForEach), если размер массива содержимого изменяется, точно так же, как приложение для покупок может изменить количество элементов, доступных после того, как пользователь потянет для обновления
Вот код, который я пробовал до сих пор. Если я правильно помню, они работали с Xcode beta 4, но с beta 5:
- Если размер массива увеличивается, цикл все равно будет отображать исходное количество элементов.
- Уменьшение размера массива вызовет ошибку индекса вне допустимого диапазона
Код:
import SwiftUI
struct test : View {
@State var array:[String] = []
@State var label = "not pressed"
var body: some View {
VStack{
Text(label).onTapGesture {
self.array.append("ForEach refreshed")
self.label = "pressed"
}
ForEach(0..<array.count){number in
Text(self.array[number])
}
}
}
}
#if DEBUG
struct test_Previews: PreviewProvider {
static var previews: some View {
test()
}
}
#endif
Я новичок в SwiftUI и программировании графического интерфейса в целом, и мне кажется, что каждый контент определяется во время запуска и очень сложно вносить изменения впоследствии (например: сбросить представление после того, как пользователь уйдет, а затем вернется к нему). Мы будем очень благодарны за решения проблемы цикла или любые советы по повышению динамичности представлений!