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

前言

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

SF Symbols

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

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

如果你正在面试,或者正准备跳槽,不妨看看我精心总结的面试资料:https://gitee.com/Mcci7/i-oser 来获取一份详细的大厂面试资料 为你的跳槽加薪多一份保障

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

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

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

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

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

然后通过函数进行调用:

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

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

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?:

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

SFSafeSymbols

SF Symbols 简介

总结

通过SF Symbols软件查询,与SFSafeSymbols的安全调用,我们可以很好的调用Apple为我们设计好的图标。

这对于独立开发,或者是苦于找不到素材的开发人员是一件好事。

我们甚至可以把SF Symbols软件分享给UI,让他们设计出更Apple的图标。

当然SF Symbols仅支持iOS 13之后,这确实是一大痛点。

你可能感兴趣的:(Swift:有了SFSafeSymbols库,没有UI我也不愁了)