ios 是否可以在UIImage之外使用SF符号?

apeeds0o  于 2023-02-01  发布在  iOS
关注(0)|答案(3)|浏览(136)

我对如何在iOS项目中使用SF符号感到困惑。我有一个UIButton,它使用UIImage systemImageNamed:就可以很好地使用符号。我想在另一个视图中显示关于该按钮的消息和一些文本。我想我应该能够使用该符号的Unicode引用,但它不能呈现。我的理解是,这些符号在私人使用区域,但是我无法使用@"Press the \U0010057C button."这样的代码来渲染它们
我曾尝试将SFSymbolsFallback.ttf字体文件导入到我的项目中。
我希望看到符号被渲染,但得到的却是?。

ohfgkhjo

ohfgkhjo1#

这对我很有效:

let imageAttachment = NSTextAttachment()
imageAttachment.image = UIImage(systemName: "checkmark.circle")

// If you want to enable Color in the SF Symbols.
imageAttachment.image = UIImage(systemName: "checkmark.circle")?.withTintColor(.blue)

let fullString = NSMutableAttributedString(string: "Press the ")
fullString.append(NSAttributedString(attachment: imageAttachment))
fullString.append(NSAttributedString(string: " button"))
label.attributedText = fullString

结果:

kqlmhetl

kqlmhetl2#

我一直在纠结于如何使用Coretext渲染API来使用SF符号字形这个同样的问题。在MacOS上,“SF Pro Text”字体中有7500多个字形,包括SF符号字形。在iOS上,系统字体只有~2800字形,似乎不包括新的SF符号字形。除了包括字体在项目本身(我认为这违反了苹果的授权),我还没有找到一种方法来使用它们的Unicode字符值呈现这些字形。

jv4diomz

jv4diomz3#

在macOS 13 Ventura中,您可以简单地将SF Symbols应用中的符号复制粘贴到Xcode中的NSString中,效果非常好!
我也在macOS 11 Big Sur下测试过,刚开始不起作用,但安装了SF Symbols应用后就开始工作了。
所以,也许这只工作,如果SF符号应用程序安装?我不确定。

相关问题