gpt4 book ai didi

swiftui - 在 Picker 标签中使用隐藏 ProgressView 时崩溃

转载 作者:行者123 更新时间:2023-12-04 08:50:25 31 4
gpt4 key购买 nike

我想放一个 ProgressView里面Picker标签。当我点击 Hide Spinner 按钮时,这(间歇性)会因 EXC_BAD_ACCESS(代码=EXC_I386_GPFLT)崩溃。

struct ContentView: View {
@State private var selectedCity = ""
@State private var showSpinner = true

let cities = [
"Calgary",
"Edmonton",
"Toronto"
]

var body: some View {
NavigationView {
VStack(spacing: 0) {
Form {
Picker(selection: $selectedCity, label:
HStack {
Text("Your City")
if showSpinner {
ProgressView()
.padding(.horizontal, 2)
}
}
) {
ForEach(cities, id: \.self) { city in
Text(city).tag(city)
}
}

Button("Hide Spinner", action: { showSpinner = false })
}
}
.navigationBarTitle("ProgressView Crash", displayMode: .inline)
}
}
}
我做错了什么吗?我猜这是一个 SwiftUI 错误。包装 UIActivityIndicatorView 时我得到相同的行为在 UIViewRepresentable .

最佳答案

是的,它看起来像是一个带有自动生成的可访问性标签的错误。安全的解决方法是使用明确提供的可访问性。
使用 Xcode 12/iOS 14 测试

Picker(selection: $selectedCity, label:
HStack {
Text("Your City")
if showSpinner {
ProgressView()
.padding(.horizontal, 2)
}
}.accessibility(label: Text("Your City")) // << here !!
) {
ForEach(cities, id: \.self) { city in
Text(city).tag(city)
}
}

关于swiftui - 在 Picker 标签中使用隐藏 ProgressView 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64127913/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com