【发布时间】:2019-08-02 17:16:29
【问题描述】:
我正在尝试实现一个视图,如果内容数组的大小发生变化,该视图可以更改显示项目的数量(由 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 和 GUI 编程的新手,感觉就像每个内容都是在启动时定义的,之后很难进行更改(例如:在用户离开后重置视图然后返回) .非常感谢循环问题的解决方案或使视图更具动态性的任何提示!
【问题讨论】:
标签: swift xcode swiftui xcode11