SFSymbols

Build Status Swift 6.0 Version 3.0 Swift Package Manager compatible Platforms License

触手可及的所有 SFSymbols。

使用方法

SFSymbolstatic variables (静态变量),包含 Apple 所有 SFSymbols 的标识符字符串,以及它们所属的类别和可用性。

你可以使用 'allSymbols' 静态变量来遍历所有版本兼容的符号。

for symbol in SFSymbol.allSymbols {
	print(symbol.title)
}

如果你只想获取特定 SFCategory 中的符号,你可以这样做。

for symbol in SFCategory.weather.symbols {
	print(symbol.title)
}

甚至还有常见、易于理解的符号名称。你可以随意扩展 SFSymbols 在你自己的项目中,以添加更多常见的名称。

public extension SFSymbol{
    static let share   = squareAndArrowUp
    static let refresh = arrowClockwise
    static let copy    = docOnDoc
    static let writing = squareAndPencil
}

@available(iOS 14, macOS 14.0, tvOS 14.0, watchOS 7.0, *)
public extension SFSymbol{
    static let edit    = rectangleAndPencilAndEllipsis
    static let filter  = lineHorizontal2DecreaseCircle
    static let sort    = arrowUpArrowDownCircle
}

此外,还有多个扩展,包括 UIImageImageButtonLabelUIAction,可以轻松使用任何 SFSymbol

UIKit

UIImage(symbol: .playCircle)

SwiftUI

Image(symbol: .playCircle)
VStack {
    Label("Sunset", symbol: .sunset)
    Label("Sunset", symbol: .sunset)
        .foregroundStyle(.red)
    Label("Sunset", symbol: .sunset, textColor: .orange)
        .foregroundStyle(.yellow)
}
VStack {
    Button(symbol: .sunset){}
        .foregroundStyle(.red)
    Button("Sunset", symbol: .sunset){}
        .foregroundStyle(.yellow)
    Button("Sunset", symbol: .sunset, textColor : .orange){}
        .foregroundStyle(.yellow)
}

关于

SFSymbols 是 Apple 的一个真正的福利。然而,一个缺点是查找确切的符号名称非常麻烦。例如:"square.and.line.vertical.and.square.fill"。这是一个很长的字符串,需要记住,并且一遍又一遍地浏览 SF Symbols 目录令人厌倦。

如果可以使用代码自动完成功能,岂不是更容易?

这就是这个微型库的目的。此外,此库还包括每个符号的相关信息,例如发布信息、类别和相关的搜索词。

安装

Swift Package Manager

由于 Xcode 将 Swift Package Manager 原生集成到 IDE 中,你可以通过以下方式简单地添加 SFSymbol:

File (文件) -> Swift Packages (Swift Packages) -> Add Package Dependency... (添加包依赖...)

当提示输入包 URL 时,粘贴

https://github.com/Rspoon3/SFSymbols

然后单击“Next” (下一步) & “Finish” (完成) 以通过 Xcode & SPM 自动安装 SFSymbol!

手动

不想添加额外的第三方依赖项?那么只需将文件复制到项目相应的文件夹中即可!

鸣谢

感谢 Nirma 提供的想法。本项目深受他的 SFSymbol 包的影响,并基于此构建。我发现有些事情我想以不同的方式做,不知不觉中,我已经发展出了他已经完成工作的一个分支,并且朝着不同的方向发展。我还要感谢 Steven Sorial 创建了鼓舞人心且广受欢迎的 SFSafeSymbols

贡献

如果您有任何关于改进项目的建议或想法,请随时提出。您可以创建一个 pull request 或为此项目打开一个 issue。

更新符号

要更新符号,请按照以下步骤操作

  1. 导航到 /Applications/SF\ Symbols.app/Contents/Resources/Metadata
  2. 将 symbol_categories、symbol_search、name_availability 和 categories plist 文件复制到演示项目的“SFSymbol App Plist Files”中
  3. 运行演示项目(最好在 Mac 上)
  4. 找到输出文件(检查控制台日志以获取输出目录)
  5. 使用 SFCategory.swift 更新包源文件中相应的檔案
  6. 使用演示项目生成的新文件替换包 SFSymbol+All.swift 中的所有文件,但 SFSymbol+All 本身除外。这个文件需要手动更新。
  7. 使用演示项目生成的新文件替换包 SFSymbol+StaticVariables.swift 中的所有文件
  8. 更新 CHANGELOG

许可证

SFSymbols 在 MIT 许可证下发布。 查看 LICENSE 以获取详细信息。