Mar*_*ner 5 swift swiftui swiftui-foreach swiftui-tabview
ForEach在TabViewwithPageTabViewStyle修饰符中使用时,这是一个非常具体的问题。
每次我在数组的开头插入一个元素时,我的应用程序都会崩溃。
我得到一个
尝试从更新前仅包含 11 个项目的部分 0 中删除项目 11
错误。
在画布中它也会崩溃。
最后的常规附加工作正常,当我删除 PageTabViewStyle 修饰符时也可以正常工作。
如果我需要详细说明或有任何问题,请告诉我。
更新:我似乎在 iOS 15 中此问题已得到修复并且我的代码有效。我仍然希望找到 iOS 14 的解决方法。
我用一个简单的单页应用程序重现了这个问题:
import SwiftUI
struct SwiftUIView: View {
@State var myArray: [String] = ["C", "D", "E", "F", "G"]
var body: some View {
VStack {
Button("Insert before", action: {
myArray.insert("A", at: 0)
})
TabView {
ForEach(myArray, id: \.self) { value in
Text("\(value)")
}
}
.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))
}
}
}
struct SwiftUIView_Previews: PreviewProvider {
static var previews: some View {
SwiftUIView()
}
}
Run Code Online (Sandbox Code Playgroud)
Asp*_*eri 10
以下是针对 Xcode 12.5 / iOS 14.5 的测试解决方法。
TabView {
ForEach(myArray, id: \.self) { value in
Text("\(value)")
}
}
.tabViewStyle(PageTabViewStyle(indexDisplayMode: .never))
.id(myArray.count) // << here !!
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |