前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Swift:有了 SFSafeSymbols 库,没有 UI 我也不愁了

Swift:有了 SFSafeSymbols 库,没有 UI 我也不愁了

作者头像
Swift社区
发布2021-11-26 15:30:30
3870
发布2021-11-26 15:30:30
举报
文章被收录于专栏:Swift社区

前言

之前我介绍了深色模式适配和 UIColor 相关的分类,今天要介绍的继续和UI相关,是一个库,叫 SFSafeSymbols,大家跟着我一起来看看吧。

SF Symbols

在和大伙介绍这个库之前,我们先说一个 Apple 开发的软件,叫 SF Symbols

这里软件是用来干嘛的呢,我上个截图大家就知道了:

SF Symbols 在 WWDC 2019 期间推出。自此 Apple 为我们提供了免费 Symbols,供我们在应用中使用,而且使用它们非常简单。

说简单点,就是 Apple 官方提供一套 UI 素材给开发者,可以使用。

经历了 WWDC 2020 和 WWDC 2021 之后,SF Symbols 已经到 3.0 了。

那么我们应该如何使用它呢?

比如上图中的第一个图标我觉得不错,想在 iOS 中进行开发,我先右键拷贝下来这个名称:

然后通过函数进行调用:

代码语言:javascript
复制
let image = UIImage(systemName: "folder.badge.person.crop")

我们看看这个 systemName 的初始化函数的整体情况:

代码语言:javascript
复制
open class UIImage : NSObject, NSSecureCoding {
    @available(iOS 13.0, *)
    public /*not inherited*/ init?(systemName name: String)
}

iOS13 之后可用,可选构造函数,返回的是 UIImage? 类型,传入的 name 是字符串,硬编码,不安全。

这个时候 SFSafeSymbols 就该登场啦。

SFSafeSymbols

A SF Symbol UIImage can now be initialized using the SFSymbol enum. This image is already unwrapped, so you get a UIImage instead of a UIImage?:

代码语言:javascript
复制
UIImage(systemSymbol: .cCircle)
UIImage(systemSymbol: SFSymbol.eCircleFill)
UIImage(systemSymbol: ._11CircleFill, withConfiguration: /* Some UIImage.Configuration */)

通过 SFSafeSymbols 库,我们可以通过库提供的 SFSymbol 中的 enum 去初始化一个已经解包好的 image,返回的是 UIImage,而不是 UIImage?,一并解决硬编码问题。

更多详细的用法,大家可以在 Github 中去查了,我这就不多费笔墨了。

现在,有了 SFSafeSymbols 库,没有 UI 我也不愁了。

参考文档

  • SF Symbols: https://developer.apple.com/sf-symbols/
  • SFSafeSymbols: https://github.com/piknotech/SFSafeSymbols
  • SF Symbols 简介: https://zhuanlan.zhihu.com/p/159653303

总结

通过 SF Symbols 软件查询,与 SFSafeSymbols 的安全调用,我们可以很好的调用 Apple 为我们设计好的图标。这对于独立开发,或者是苦于找不到素材的开发人员是一件好事。我们甚至可以把 SF Symbols 软件分享给 UI,让他们设计出更 Apple 的图标。当然 SF Symbols 仅支持 iOS 13 之后,这确实是一大痛点。我们下期见。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Swift社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SF Symbols
  • SFSafeSymbols
  • 参考文档
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档