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

如何在Swift中为UIButton标题设置SF Mono字体的无斜杠零字符

在Swift中为UIButton标题设置SF Mono无斜杠零的方法

SF Mono的数字0变体由字体特性(Font Feature)控制,无需修改字符编码,只需为UIButton的标题字体添加特定特性,就能让0显示为无斜杠样式。具体实现如下:

// 创建基础SF Mono字体描述符(按需调整字体大小)
let baseDescriptor = UIFontDescriptor(fontAttributes: [
    UIFontDescriptor.AttributeName.family: "SF Mono",
    UIFontDescriptor.AttributeName.size: 17
])

// 配置无斜杠零的字体特性:指定zero变体为无斜杠类型
let zeroFeature = [
    UIFontDescriptor.FeatureKey.featureIdentifier: kZeroVariantType,
    UIFontDescriptor.FeatureKey.typeIdentifier: kZeroVariantNoSlash
] as [UIFontDescriptor.FeatureKey : Int]

let modifiedDescriptor = baseDescriptor.addingAttributes([
    UIFontDescriptor.AttributeName.featureSettings: [zeroFeature]
])

// 生成带无斜杠零特性的字体
let sfMonoNoSlashFont = UIFont(descriptor: modifiedDescriptor, size: 0)

// 为UIButton设置标题和目标字体
let targetButton = UIButton(type: .system)
targetButton.setTitle("示例文本:102030", for: .normal)
targetButton.titleLabel?.font = sfMonoNoSlashFont

说明:kZeroVariantType对应字体的零变体特性标识,kZeroVariantNoSlash是无斜杠零的类型参数,通过该配置,所有U+0030编码的0都会显示为无斜杠样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:22:10