You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI设置.symbolRenderingMode(.palette)出现成员不存在报错

报错原因

  • 核心原因是API版本适配问题:symbolRenderingMode(_:)修饰符、.palette枚举值、多参数的foregroundStyle(_:_:)都是iOS 15、macOS 12、watchOS 8、tvOS 15及以上系统才推出的SwiftUI API,如果你当前项目的最低部署版本低于上述版本,编译器无法识别对应API,就会抛出这两个错误。
  • 次要可能原因是Xcode版本过低:Xcode 13及以上版本才内置支持上述新API,低于该版本的Xcode也会识别不到相关符号。

解决办法

方案1:提升项目最低部署版本

将项目的Deployment Target调整到iOS 15+(对应其他平台同理),即可直接编译通过。

方案2:添加版本判断兼容低系统

如果需要支持更低版本的系统,需要用@available判断包裹对应代码,同时补充低版本降级实现:

Button(action: {
    self.currentview = "Form"
}) {
    if #available(iOS 15.0, macOS 12.0, watchOS 8.0, tvOS 15.0, *) {
        Image(systemName: "note.text.badge.plus")
            .font(.system(size: 30))
            .symbolRenderingMode(.palette)
            .foregroundStyle(Color.blue, Color.green)
    } else {
        // 低版本系统的降级实现示例
        Image(systemName: "note.text.badge.plus")
            .font(.system(size: 30))
            .foregroundColor(.blue)
    }
}

内容的提问来源于stack exchange,提问作者Kunal Katiyar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 16:30:01