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

如何修改SF Symbols系统图像及UIAction的背景色?

关于SF Symbols背景色与UIAction背景色的修改问题

一、SF Symbols背景色的修改限制

SF Symbols本身的背景是完全透明的,无法直接修改其背景色。你提到的调色板方法仅能修改符号自身的填充/描边颜色,示例代码如下:

let conf = UIImage.SymbolConfiguration(paletteColors: [blah])
    .applying(UIImage.SymbolConfiguration(pointSize: 50, weight: .medium))

let acn = UIAction(
    title: "Blah",
    image: UIImage(systemName: "whatever", withConfiguration: conf)
) { [weak self] _ in
    guard let self else { return }
    yourButtonProcess("bleh")
}

示例图

若无法修改承载控件的背景色,想要给系统符号添加“背景色”,只能通过模拟方式实现:

  • 利用SF Symbols自带的填充类符号(如square.fill)作为底层背景块,与目标符号组合,通过调色板分别设置背景块和符号的颜色,模拟带背景的效果。
  • 或通过Core Graphics自行绘制带背景的图像,再将系统符号叠加在上方。

二、UIAction背景色的修改

原生API不支持直接修改UIAction的背景色,要实现“彩虹”配色菜单,需通过自定义菜单内容达成:

  • 创建UIContextMenuConfiguration时,自定义actionProvider,返回包含自定义视图的菜单内容,在自定义视图中自行绘制背景色、配置对应UIAction的文本和图标,实现每个选项的彩虹背景。
  • 或子类化菜单底层使用的UICollectionViewCell,自定义单元格背景色后关联到对应UIAction。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 21:07:36