SwiftUI Picker:移除标签图标及SF Symbol颜色失效问题
SwiftUI Picker 问题解决
调整方案
针对你遇到的两个问题,直接修改代码即可实现需求:
- 选项隐藏SF Symbol:用
Text替代Label作为列表项,彻底移除图标显示 - 选中项仅展示文本:将Picker的label设置为动态显示选中项的标题,而非固定文本
修改后代码
Picker(selection: $viewModel.heartRateAlert) { ForEach(HeartRateAlertOptions.allCases, id: \.self) { type in // 替换Label为Text,选项中不再显示SF Symbol Text(type.title) } } label: { // 动态展示当前选中项的文本,而非固定内容 Text(viewModel.heartRateAlert.title) }
补充说明
如果后续需要在选中区域同时显示带指定颜色的图标,可将label改为以下写法(需确保iconColor为Color类型):
Label(viewModel.heartRateAlert.title, systemImage: viewModel.heartRateAlert.icon) .foregroundStyle(viewModel.heartRateAlert.iconColor)
内容的提问来源于stack exchange,提问作者Jalil
相关产品推荐
相关产品推荐

