SwiftUI中适配明暗模式的扑克牌花色SF Symbols显示问题
SwiftUI中SF Symbols扑克牌花色适配明暗模式的解决方法
我在SwiftUI iOS应用中遵循Apple开发指南,使用SF Symbols展示扑克牌花色:红桃、方块采用传统红色,梅花、黑桃采用黑色。使用的代码如下:
Text(Image(systemName: "suit.spade")) Text(Image(systemName: "suit.heart"))
想要实现的理想效果:亮色模式下显示黑/红色,暗色模式下显示白/红色,自动适配系统明暗模式切换。但找不到合适的修饰符实现该效果,同时希望避免自定义算法,防止和用户自定义调色板产生冲突。
我尝试过.symbolRenderingMode修饰符的不同参数,均未解决问题:
.multicolor:亮色模式显示正常,但暗色模式下黑桃在黑色背景上仍显示为黑色,可读性极差;.monochrome:红桃无法显示红色。
由于Apple提供的花色符号为多色版本,我更希望依赖官方算法而非自行编写解决方案。
(题外话:我更倾向于使用四种颜色的方案,这是视力不佳用户最易识别的模式,有助于区分梅花和黑桃,但如果Apple提供支持明暗模式的双色标准方案,我也可以接受)
*** 更新:@HangarRash 提供的解决方案是正确的,但Xcode预览无法正确显示该效果,可查看对应的效果截图。
内容的提问来源于stack exchange,提问作者alanrick
相关产品推荐
相关产品推荐

