SwiftUI SF Symbols 好处及其使用指南

SF Symbols在WWDC 2019期间推出,对我们开发人员来说是一个很大的礼物。 Apple基本上为我们提供了免费符号,供我们在应用程序中使用,而且使用它们甚至也非常容易! 通过在WWDC 2020中引入SF Symbols 2.0,我们有了更多的可能性在我们的应用中显示精美的图标。

现在该深入探讨它们的详细信息以及如何使用它们来使您的应用看起来既美观又与系统应用程序保持一致.

什么是SF符号?

SF Symbols是一组1500多个符号,可在应用程序中使用。 它们可以按照各种重量和秤进行对齐和配置,以适应您的设计。 由于它们已集成到San Francisco系统字体中,因此它们会自动确保与所有重量和大小的文本垂直对齐。

什么是SF符号

哪些平台支持SF Symbols?

SF Symbols支持的平台是:

  • iOS 13及更高版本
  • watchOS 6及更高版本
  • tvOS 13及更高版本

由于符号包含在San Francisco系统字体中,因此您也可以在Mac应用程序中使用它们,但适用许可协议.

SF Symbols 2.0 –有什么新功能?

WWDC 2020引入了SF Symbols 2.0,并进行了一些非常受欢迎的更改。稍后,随着SF Symbols 2.0应用程序的面市,它们还不是全部可见。让我们回顾一下截至今天Xcode 12中可用的更改。

最新Beta版本中超过750个新符号

SF Symbols 2.0包括750多种新符号,包括设备,健康状况,运输符号等。新符号仅在iOS 14,iPadOS 14和macOS Big Sur的Beta版中可用。

改善光学对准

使用SF符号的挑战之一是光学对准。如果与San Fransisco系统字体一起使用,则可以自动确保垂直对齐,但是直到1.1版之前,都无法水平对齐符号以使其在所有情况下看起来都很好。

通过2.0更新,您现在可以为符号提供标准和自定义符号都支持的负边距。这应该给您足够的控制,以在视觉上水平对齐符号。例如,您可能有一个包含徽章的符号,在这种情况下,您需要在视觉上稍微水平地移动符号。

一个小警告是,这些符号中的两个可以彼此相邻放置,并且具有与两个符号重叠的负边距。尽管这种情况很少见,但您可能需要在两者之间添加额外的空间或其他内容,以免发生冲突。

SF Symbols 2.0添加了对多色符号的支持

乍一看,您现在似乎可以为SF符号着色。但是,通过应用简单的色泽已经可以做到这一点。与有色符号相比,新引入的多色符号具有独特性,因为它们会自动适应外观模式,辅助功能设置和鲜艳度。这是快速支持许多不同方案的好方法。

局部符号变体

另一个重要的新功能是支持从右到左书写系统的本地化符号变体以及希伯来语,阿拉伯语和梵文的特定于脚本的符号。这些变体经过优化,在那些系统中看起来很棒。

我可以到处使用符号吗?

不,绝对不是!密切注意适用的许可协议。如Apple所言:

您不得在应用程序图标,徽标或任何其他与商标相关的用途中使用SF符号(或实质上或令人困惑的字形)。 Apple保留进行审查的权利,并有权单方面决定要求对违反上述限制的任何Symbol进行修改或中止使用,并且您同意立即遵守任何此类要求。

限制符号

除了许可协议之外,还有一系列符号,只能用于引用特定的Apple技术。如果您使用符号来防止应用在商店中被拒绝,那么经常访问此列表是一件好事。

这些符号的完整列表可在“按原样使用的符号”段落下找到。

如何浏览可用的符号?

Apple提供了SF Symbols应用程序,可让您浏览,复制和导出任何可用的符号。该应用程序可在此处下载,并且可用于macOS 10.14及更高版本

如何浏览可用的符号

该应用程序允许您浏览符号并以选定的重量显示它们。 上图显示了中等重量的图标,下图显示了在UltraLight重量中相同图标的外观

移植符号

Mac应用程序允许您使用文件->导出符号...或⌘E将所有符号支持为SVG。 这是在您无法使用字体本身的地方包含符号的好方法。 但是,请记住许可协议。

浏览网上的符号

值得一提的是,您也可以在sfsymbols.com上浏览符号。通过在此网站上进行搜索,您可以获得的好处之一是,您可以查看每个图标(如果存在)的应用限制:
但是,由于前面所述的许可证限制,它们只能显示符号的名称,使用Mac应用程序仍然会更好。

创建自定义符号

只要没有符合您要求的符号,便可以创建自定义符号。 导出的SVG版本的符号结构良好,可以用作自定义符号的基础。

WWDC 2019的SF Symbols简介会议对如何使用自定义符号进行了深入说明.选择正确的符号作为基本参考,最好从与您想要的符号接近的符号开始。 要知道它们已经受版权保护,您不能使用Apple产品的复制品,也不能在自定义符号中复制它们。 另外,请查看前面提到的按原样使用的符号列表,因为这些符号无法自定义。
大多数形状也都可用,但其中没有图标。 例如circle或circle.fill:

圆圈符号是自定义符号的理想基础

这是自定义符号的一个很好的起点!

我需要支持所有的体重秤吗?

好吧,您实施的权重和标度越多,支持的文本设置范围就越广。 在所有比例下,最小值应为常规,中等,半粗体和粗体,以便您可以支持动态类型和粗体文本设置。

如何验证我的自定义SF符号?

该应用程序允许您通过菜单来验证自定义SF符号:文件➞验证自定义符号...。浏览并选择自定义符号以开始验证。

导出和使用自定义符号

将符号导出到SVG后,您只需将符号拖到Xcode中的资产目录中即可。

在Xcode中添加到资产目录的自定义符号

它显示符号的预览,并允许您配置其名称,外观,方向和本地化。

在iOS 12及更低版本上使用自定义符号

仅iOS 13及更高版本支持符号。 在做旧的系统版本的情况下,Apple做出了出色的工作,使我们可以轻松地重新获得图像。 只需为您的图像提供与自定义符号相同的名称,如果需要,下面的代码行将退回到该图像:

let customSymbol = UIImage(named: "my_custom_symbol")

如何在Swift中使用SF符号

要在Swift中使用SF Symbol,可以使用新的UIImage(systemName :)初始化程序:

let image = UIImage(systemName: "square.and.pencil")

如您所见,Apple使SF符号的使用变得非常容易:

在SF Symbols Mac应用中浏览并找到您的图标
使用⇧⌘C复制符号名称
使用UIImage(systemName :)初始化程序中的名称
在UIImageView,UIButton或任何其他UI元素中使用图像
如何在Swift中更改SF符号的比例?
要更改SF Symbol的比例,可以使用UIImage Symbol Configuration。

let smallConfiguration = UIImage.SymbolConfiguration(scale: .small)
let smallSymbolImage = UIImage(systemName: "square.and.pencil", withConfiguration: smallConfiguration)

如何在Swift中更改SF符号的权重?

权重也可以通过UIImage符号配置来更改。

let ultraLightConfiguration = UIImage.SymbolConfiguration(weight: .ultraLight)
let ultraLightSymbolImage = UIImage(systemName: "square.and.pencil", withConfiguration: ultraLightConfiguration)

在UIImageView和UIButton中更改符号配置

UIImageView和UIButton类带有新的属性preferredSymbolConfiguration,该属性使您可以将特定配置应用于图像视图中设置的任何符号。

let imageView = UIImageView(image: defaultSymbolImage)
let updatedConfiguration = UIImage.SymbolConfiguration(weight: .bold)
imageView.preferredSymbolConfiguration = updatedConfiguration

只要在图片视图中进行设置,就会更改符号。 正如您在下面的Swift Playground图片中所看到的,该符号也被更改为蓝色。带SF符号的已配置UIImageView,这是从图像视图上设置的色彩继承的。 如果要确保符号始终以特定的颜色显示,可以使用withTintColor方法:

let heartImage = UIImage(systemName: "heart.fill")!
let redHeartImage = heartImage.withTintColor(.red, renderingMode: .alwaysOriginal)

组合配置

如果您要保存多个配置以在整个应用中使用,则可能是您希望对共享配置进行小的调整。

您可以使用Apply方法轻松完成此操作。

let boldLargeConfig = UIImage.SymbolConfiguration(pointSize: UIFont.systemFontSize, weight: .bold, scale: .large)
let smallConfig = UIImage.SymbolConfiguration(scale: .small)
let boldSmallConfig = boldLargeConfig.applying(smallConfig)
let boldSmallSymbolImage = UIImage(systemName: "square.and.pencil", withConfiguration: boldSmallConfig)

对齐符号

新的UIImage.withBaselineOffset(fromBottom :)方法允许您从图像的底部向图像应用新的偏移量。 此方法在图像的一般使用中也可能有用。

推荐

基础文章推荐

  • 《SwiftUI是什么,听听大牛们如何说》

经典教程推荐

  • 更新近百篇SwiftUI教程《SwiftUI2020教程》
  • 帮您突破数据存储难关《SwiftUI vs CoreData数据存储解决方案》

上新

  • 《WWDC2020专栏》
  • 《SwiftUI WWDC2020 新增组件列表》

技术源码推荐

推荐文章

CoreData篇

  • SwiftUI数据存储之做个笔记App 新增与查询(CoreData)
  • SwiftUI进阶之存储用户状态实现登录与登出
  • SwiftUI 数据之List显示Sqlite数据库内容(2020年教程)

Combine篇

  • 一篇文章学懂弄通SwiftUI与Combine(含轮播动画App源码)

TextField篇

  • 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源码)》
  • 《SwiftUI实战之TextField风格自定义与formatters》
  • 《SwiftUI实战之TextField如何给键盘增加个返回按钮(隐藏键盘)》
  • 《SwiftUI 当键盘出现时避免TextField被遮挡自动向上移动》
  • 《SwiftUI实战之TextField如何给键盘增加个返回按钮(隐藏键盘)》

JSON文件篇

  • SwiftUI JSON文件下载、存储、解析和展示(代码大全)

一篇文章系列

  • SwiftUI一篇文章全面掌握List(教程和源码)
  • 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源码)》
  • SwiftUI一篇文章全面掌握Picker,解决数据选择(教程和源码)
  • SwiftUI一篇文章全面掌握Form(教程和源码)
  • SwiftUI Color 颜色一篇文章全解决

技术交流

QQ:3365059189
SwiftUI技术交流QQ群:518696470

  • 请关注我的专栏icloudend, SwiftUI教程与源码
    https://www.jianshu.com/c/7b3e3b671970

http://www.taodudu.cc/news/show-4104911.html

相关文章:

  • backtrace和backtrace_symbols函数原理解析
  • VC++内存泄漏检测方法(5):使用强大的Windbg工具,重点是Symbols Path设置
  • WINDOWS symbols
  • backtrace, backtrace_symbols, backtrace_symbols_fd
  • python symbols函数_Python应用 | 求解微积分!
  • LATEX Mathematical Symbols
  • 使用 Microsoft Symbol Server 获取调试符号文件
  • JavaScript 中的 Symbols 怎么用
  • Windbg基础-了解Symbols zz
  • TypeScript学习--Symbols
  • Symbols介绍
  • 网上打印怎么那么便宜,网上打印平台哪家比较便宜
  • 软件工程作业
  • 关于内部文档的标准格式要求(图文)
  • unity步步生花(触发类互动)
  • pb一步步开发APP
  • 图解CNN:通过100张图一步步理解CNN
  • 用C#一步步写串口通信
  • 和我一步步部署 kubernetes 集群
  • 差距:我是如何一步步落后于别人
  • PHP一步步实现文件上传
  • 一步步教你Windows配置ISCSI共享存储
  • vue alert内含有html,vue一步步实现alert功能
  • 一步步图解 Java G1 垃圾收集器
  • 一步步手写神经网络
  • 一步步了解Argp
  • LATTICE FPGA 工具介绍之ACTIVE-HDL 建立工程及仿真步步来(1)
  • LATTICE FPGA 工具介绍之ACTIVE-HDL 建立工程及仿真步步来(2)
  • .htaccess wp博客 静态网页 永久链接一步步来
  • 浅谈,如何获取MTK CPU信息 请看我是如何做的。一步步来吧

SwiftUI SF Symbols 好处及其使用指南相关推荐

  1. SF Symbols 2在哪里下载 (SwiftUI 教程)

    SF Symbols 是什么 拥有超过2,400个可配置符号, SF符号旨在与Apple平台的系统字体San Francisco无缝集成.每个符号都有各种权重和刻度,它们会自动与文本标签对齐,并支持& ...

  2. SF Symbols 使用

    伴随着WWDC 2019 的举办,对于程序员而言 ,无疑SwiftUI 推出 是比较令人兴奋的一件事情, 其中在SwiftUI 使用之中, 我们经常使用以下系统图片 Image(systemName: ...

  3. 苹果sf字体_苹果 iOS 13 黑暗模式设计指南

    苹果在 WWDC 大会上发布了黑暗模式,从 macOS Mojave 到 Google I/O 开发者大会来看,iOS 加入黑暗模式已经是一件可预期的事情了. 那么对于设计师来说,我们在设计黑暗模式的 ...

  4. SwiftUI学习记录

    快捷键 资源库:⌘+⇧+L 布局和堆栈 默认情况下,图像不可调整大小 需要添加一个名为resizable的修饰符(在Modifiers里查找) 增大间距 添加间隙: Views里的spacer 框架默 ...

  5. 苹果sf字体_还在用 iPad 看剧吗?苹果全新发布的 iPadOS 不止能让你做图了!

    注:本文由优设网独家撰写,未经优设网许可请勿转载.授权请添加编辑微信:「gg_and_xb」 WWDC19 可能是最近几年最令人激动的苹果开发者大会了. 重回高端专业领域的 Mac Pro 不仅仅是性 ...

  6. alert 标题_[SwiftUI 知识碎片] Button、Image 和 Alert

    译自 Buttons and images 更多内容,欢迎关注公众号:Swift花园 喜欢文章?不如来个 ➕三连?关注专栏,关注我 Button 和 Image 在 SwiftUI 中,按钮可以由两种 ...

  7. 苹果人机交互指南_苹果人机界面设计指南的10个见解

    苹果人机交互指南 重点 (Top highlight) I've been developing an IOS app for the past few months and have been co ...

  8. 深度式睡眠潜入虚拟世界_潜入swiftui的惊人世界

    深度式睡眠潜入虚拟世界 介绍: (Introduction:) SwiftUI is the most exciting news since Apple has announced Swift in ...

  9. SwiftUI一日速成

    Embed 功能 SwiftUI 可以将一个或多个 View 外部再包裹一层 View .在某个 SwiftUI View 上右键,Show Code Actions (快捷键 command+shi ...

  10. SwiftUI 和 Combine 的学习:一

    文章目录 简介 命令式和声明式编程 声明式 UI SwiftUI 和 Combine 简介 SwiftUI 基础 Modifier 多尺寸的预览 数据状态和绑定 投影属性 propertyWrappe ...

最新文章

  1. c++中static_cast用法与uchar/char的区别
  2. 地理信息系统控件GIS控件TatukGIS Developer Kernel 下载及介绍
  3. 本质矩阵与基本矩阵(对极几何)
  4. VC6.0生成文件的种类和作用
  5. 修改Element-UI的组件样式
  6. UI线程和Windows消息队列
  7. php对数组进行合成的函数,php合并数组函数array_merge()
  8. #敏捷个人# 第二批敏捷个人推广者实践团报名
  9. PAT (Basic Level) Practice1006 换个格式输出整数
  10. exfat文件系统相关数据结构以及数据恢复方法
  11. 计算机应用基础好不好考,计算机应用基础好考么
  12. 弘辽科技:电商壹周大事
  13. css向右箭头形状按钮,详解Bootstrap的纯CSS3箭头按钮样式
  14. FYI|OHBM BrainArt Competition DDL: June06/2021
  15. ARM与高校联合研制基于机器学习的柔性传感器
  16. java BigDecimal.ROUND_UP和BigDecimal.ROUND_DOWN的用处
  17. Java李连杰_李连杰年度巨作霍元甲主题曲:周杰伦唱
  18. 当使用VMware给虚拟机扩展硬盘容量时,显示无法扩展容量并提示:在部分链上无法执行所调用的函数,请打开父虚拟磁盘。
  19. 深度解密Mysql数据库索引
  20. Python基础--魔法方法()运算符重载)

热门文章

  1. Java企业微信号开发之微信网页授权和获取用户信息
  2. 文章标题一个应届计算机毕业生的2012求职之路
  3. 新疆旅游攻略-乌鲁木齐
  4. 网络营销之QQ推广技巧
  5. 企业发展必不可缺——BPM系统
  6. Win10电脑主板型号怎么查看
  7. 产品思维:什么是互联网思维
  8. java论文word_JAVA课程实践报告 基于web的点餐系统毕业设计word格式
  9. 雪鹰领主手游战力提升辅助攻略 雪鹰领主手游脚本工具介绍
  10. 智能眼镜现在是什么水平?