如何在UIKit中使用SF Symbols 3的hierarchical等三种渲染模式?
SF Symbols 3 新增渲染模式 UIKit 实现方案(iOS 15+ / macOS 12+ 支持)
以下三种渲染模式均基于UIImage.SymbolConfiguration扩展API实现,可直接在原有符号配置基础上追加对应配置项即可:
1. hierarchical(层级渲染模式)
该模式基于单一基础色自动生成不同透明度的分层配色,突出符号的层级结构:
let configuration = UIImage.SymbolConfiguration(pointSize: 18, weight: .regular, scale: .large) // 追加层级渲染配色配置 let hierarchicalConfig = configuration.applying(UIImage.SymbolConfiguration(hierarchicalColor: .systemBlue)) let image = UIImage(systemName: "1.circle", withConfiguration: hierarchicalConfig)

2. palette(调色板渲染模式)
支持自定义最多3种颜色,分别对应符号的不同图层,可自由搭配配色方案:
let configuration = UIImage.SymbolConfiguration(pointSize: 18, weight: .regular, scale: .large) // 追加调色板渲染配色配置,颜色数量对应符号的图层数,最多支持3种 let paletteConfig = configuration.applying(UIImage.SymbolConfiguration(paletteColors: [.systemBlue, .systemGray, .systemTeal])) let image = UIImage(systemName: "1.circle", withConfiguration: paletteConfig)

3. multicolor(多色渲染模式)
直接使用SF Symbols官方预设的多色样式,无需手动指定配色:
let configuration = UIImage.SymbolConfiguration(pointSize: 18, weight: .regular, scale: .large) // 开启多色渲染模式,自动应用符号自带的官方配色 let multicolorConfig = configuration.applying(UIImage.SymbolConfiguration.preferringMulticolor()) let image = UIImage(systemName: "1.circle", withConfiguration: multicolorConfig)
内容的提问来源于stack exchange,提问作者pkamb
相关产品推荐
相关产品推荐

