【发布时间】:2019-11-29 00:01:19
【问题描述】:
很高兴在这里发布我的第一个问题!
我已经用 SwiftUI 玩了几个星期了,在一个更大的项目中,我发现了以下错误。
如果您有一个 TabView 和其中的列表,如果您在滚动动画发生时尝试更改选项卡,应用将崩溃并显示 FATAL ERROR: "Thread 1: signal SIGABRT"。
控制台:
- BugTest[11830:362796] 前置条件失败:属性设置初始值失败:98
你遇到过这种情况吗?有什么方法可以在不将列表更改为 ForEach 的情况下解决此问题?
提前谢谢你!
代码:
import SwiftUI
struct ContentView: View {
var body: some View {
TabView {
list()
.tabItem {
Image(systemName: "doc")
.font(.system(size: 25))
}
Text("Testing the bug")
.tabItem {
Image(systemName: "list.dash")
.font(.system(size: 25))
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
struct list: View {
var body: some View {
List(0..<50){_ in
Text("test")
}
}
}
【问题讨论】:
-
无法复制。 Xcode 11.2.1 (11B500) / iOS 13.2.2。请尝试将您的列表包装在
VStack容器中,根据我的观察,在body的顶层使用动态大小的视图(如List,ScrollView)是错误的 -
我将列表嵌入到 VStack 中,但没有运气。我会坚持使用 ForEach,直到这个问题得到解决。谢谢你的回答!
-
您使用哪些 Xcode/iOS 版本?想知道。对于这种类型的系统级错误,最好注意使用哪种环境。谢谢。
-
我目前在 11.2.1 (11B500)
-
@SimonBachmann 即使在 13.3 上我仍然遇到这个问题。请花点时间观看此视频 we.tl/t-GM5K90xJjG
标签: list scroll swiftui tabview