SwiftUI中Picker如果使用segmented或者palette样式,就无法点击Picker。

当Picker更换其他样式,则可以正常点击。
struct HomeCreatePreviewImage: View {
@State private var num = "day"
var body: some View {
Picker("",selection: $num) {
ForEach(FixedDepositEnum.allCases) { option in
Text(option.rawValue).tag(option.rawValue)
}
}
.pickerStyle(.segmented)
}
}
经过排查发现,外层父视图存在点击手势:
// 父视图存在点击手势
Home()
.onTapGesture {
isFocus = false
}
移除onTapGesture手势后,Picker的segmented样式恢复点击状态。
这可能是Picker的BUG,onTapGesture和Picker的segmented或者palette样式存在冲突。
相关文章
1、SwiftUI多选项视图组件Picker:https://fangjunyu.com/2025/01/10/swiftui%e5%a4%9a%e9%80%89%e9%a1%b9%e8%a7%86%e5%9b%be%e7%bb%84%e4%bb%b6picker/
