EFIconFont 1.2.1

EFIconFont 1.2.1

Zhiyu ZhuEyreFree 维护。




这是一个普通的图标字体 Cocoapods 包,帮助您在项目中更轻松地使用图标字体,在 Swift 中。

中文介绍

预览

1 2 3 4

示例

要手动运行示例项目,请克隆仓库,demo 在 'Example' 文件夹中,然后使用 Xcode 打开 EFIconFont.xcworkspace,并选择您想要的目标,运行。

或者在终端中运行以下命令

git clone [email protected]:EFPrefix/EFIconFont.git; cd EFIconFont/Example; pod install; open EFIconFont.xcworkspace

需求

版本 需要
<0.5 Xcode 10.0+
Swift 4.2+
iOS 8.0+
>=0.5 Xcode 10.2+
Swift 5.0+
iOS 8.0+

安装

EFIconFont 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile

pod 'EFIconFont'

您可以使用 subspecs 获取内置的图标字体,例如,通过以下方式您将获得 AntDesignFontAwesome 的图标

pod 'EFIconFont', :subspecs => ['AntDesign', 'FontAwesome']

您也可以选择使用 Complete subspec 获取所有内置包

pod 'EFIconFont', :subspecs => ['Complete']

然后,运行以下命令

pod install

使用

1. 核心功能

实现 EFIconFontProtocol 协议的对象可以将自己转换为 NSAttributedStringUIImage,如下所示

public protocol EFIconFontProtocol {

    // `name` is not necessarily equal to .ttf file name
    var name: String { get }

    // `path` is path of .ttf file
    var path: String { get }

    // `attributes` is style of icon
    var attributes: [NSAttributedString.Key : Any] { set get }

    // `unicode` is unique identifier of particular icon
    var unicode: String { get }
}
  • 名称:字体名称,不一定等于 .ttf 文件名称,您可以使用 BirdFont 查看文件的 Name 属性;
  • 路径:.ttf 文件的路径,通常可以通过以下代码获得:Bundle.main.path(forResource: name, ofType: "ttf")(如果文件名与名称相同,则可以使用默认实现并无需实现此属性);
  • 属性:图标属性(您可以使用默认实现并无需实现此属性);
  • Unicode:图标的唯一 Unicode;

实现协议的对象可以通过以下方法转换为字符串和图像,您还可以更改前景色和大小

// MARK:- String
func attributedString(size fontSize: CGFloat, attributes: [NSAttributedString.Key : Any]?) -> NSAttributedString?
func attributedString(size fontSize: CGFloat, foregroundColor: UIColor? = nil, backgroundColor: UIColor? = nil) -> NSAttributedString?

// MARK:- Image
func image(size fontSize: CGFloat, attributes: [NSAttributedString.Key : Any]?) -> UIImage?
func image(size fontSize: CGFloat, foregroundColor: UIColor? = nil, backgroundColor: UIColor? = nil) -> UIImage?
func image(size imageSize: CGSize, attributes: [NSAttributedString.Key : Any]?) -> UIImage?
func image(size imageSize: CGSize, foregroundColor: UIColor? = nil, backgroundColor: UIColor? = nil) -> UIImage?

2. 内置图标字体包

此 Pod 在各个子规范中集成了免费资源,如 AntDesignFontAwesome。需要使用它的开发人员可以导入,使用方法如下,您可以获取返回值为 EFIconFontProtocol 的对象。

EFIconFontAntDesign.addteam

您可以使用遵循 EFIconFontProtocol 的对象来获取 NSAttributedStringUIImage

EFIconFontAntDesign.addteam.attributedString(size: 24)
EFIconFontFontAwesomeBrands.adobe.attributedString(size: 32, foregroundColor: UIColor.white, backgroundColor: UIColor.green)
EFIconFontFontAwesomeRegular.addressBook.image(size: 24, foregroundColor: UIColor.red)
EFIconFontFontAwesomeSolid.alignLeft.image(size: CGSize(width: 36, height: 48), foregroundColor: UIColor.white)

您还可以通过以下代码获取类型为 [String : EFIconFontProtocol]EFIconFontCaseIterableProtocol 对象的所有图标

EFIconFont.antDesign.dictionary

注意:尽管以下库都是免费的,但请确保您使用图标的方华盛顿越遵守原始作者的协议规范

名称 版本 数量 文件大小 描述 许可证 预览
AntDesign 1.0 557 127KB Ant Design MIT iconfont.cn
Dashicons 0.9.0 203 51 KB WordPress管理员官方图标字体 GPLv2 wordpress.org
Devicons 1.8.0 192 92KB 为开发者设计的标志性字体 MIT vorillaz.github.io/devicons
ElusiveIcons 2.0.0 304 53KB Elusive Icons OFL elusiveicons.com
EvilIcons 1.10.1 70 16 KB 简单而清晰的 SVG 图标包 MIT evil-icons.io
FontAwesom(Regular / Brands / Solid) 5.8.1 1516 356KB Font Awesome Font Awesome Free License fontawesome.com
FoundationIcons 3.0 283 68KB Foundation Icon Fonts 3 - zurb.com/playground/foundation-icon-fonts-3
Genericons 4.0.4 103 16KB Genericons Neue 是通用的图标,适用于博客或简单的网站。 GPLv2 genericons.com
Hawcons 1.0 1035 685KB Хавконсы, включают иконки документов, спорта, погоды, смайлов, жестов, типов файлов и т.д. Бесплатно hawcons.com
IcoMoon 1.0 490 94КБ Bесплатный набор иконок IcoMoon CC BY 4.0 / GPL ionicons.com
Ionicons 4.5.5 696 143КБ Ionicons MIT ionicons.com
LigatureSymbols 2.11 239 84КБ Символы ligature OFL kudakurage.com/ligature_symbols
MapIcons 3.0.0 192 48 КБ Набор иконок для использования на картах OFL map-icons.com
MaterialIcons 3.0.1 1057 695КБ Иконки Google Material Design, четыре стиля Apache-2.0 material.io
Meteocons 47 15КБ Набор иконок погоды, включая более 40 иконок Бесплатно alessioatzeni.com/meteocons
MetrizeIcons 1.0 300 74КБ Bесплатный набор из 300 иконок стиля Metro для дизайнеров и разработчиков Бесплатно alessioatzeni.com/metrize-icons
OpenIconic 1.1.1 223 33КБ Открытый набор иконок с 223 метками в SVG OFL useiconic.com/open
StrawberryIcon 2.0.0 382 69КБ Бесплатная библиотека иконок для разработчиков и создателей OFL chuangzaoshi.com/icon
Stroke7 1.2.0 202 44КБ Серия тонких иконок в стиле iOS 7 Бесплатно themes-pixeden.com/font-demos
ThemifyIcons 1.0 352 68KB Полный набор иконок для использования в веб-дизайне и приложениях Бесплатно themify.me
Typicons 2.0.9 336 82КБ Иконки в setSize 336 пикселей, пол velit во vorm vector, в наборе OFL s-ings.com/typicons
VSCodeIcons 1.0 133 24КБ Иконки для Visual Studio Code MIT github.com/microsoft/vscode-icons
WeatherIcons 2.0.10 219 64КБ Иконки для погоды, мореплавания и метеорологии OFL erikflowers.github.io/weather-icons
Zocial 1.3.0 112 31КБ Популярные иконки социальных сетей MIT smcllns.github.io/css-social-buttons/

3. Расширение пользовательских наборов

(1) Импорт файла шрифта

Перетащите файл .ttf библиотеки иконок в проект Xcode и убедитесь, что в списке Copy Bundle Resources в Build Phases содержится этот файл шрифта (Он включается по умолчанию, просто проверьте).

+на среди данных, файл будет загружен во время выполнения, поэтому не нужно добавлять его в элемент Fonts provided by application в файле Info.plist.

(2) Реализация EFIconFontCaseIterableProtocol

Создав реализацию EFIconFontCaseIterableProtocol вы можете получить объект своего пользовательского набора иконок шрифта, демонстрация в этом проекте показывает настройку с иконками Octicons GitHub как пример

import EFIconFont

public extension EFIconFont {
    public static let octicons = EFIconFontOcticons.self
}

extension EFIconFontOcticons: EFIconFontCaseIterableProtocol {
    public static var name: String {
        return "octicons"
    }
    public var unicode: String {
        return self.rawValue
    }
}

public enum EFIconFontOcticons: String {
    case thumbsup = "\u{e6d7}"
    case unverified = "\u{e6d6}"
    case unfold = "\u{e6d5}"
    case verified = "\u{e6d4}"
    // ...
}

(3) 呼叫

与上方的内置图标字体包相同

EFIconFontOcticons.thumbsup

(4) 注意

本项目中的 Octicons 图标库归 GitHub 所有。此仅为演示,请勿在违反其所有者规定的任何情况下使用

名称 版本 数量 文件大小 描述 许可证 预览
Octicons 8.4.2 184 34KB GitHub 的图标 GitHub 标志和用法 octicons.github.com

4. 其他

一些图标字体资源网站的用法

作者

EyreFree, [email protected]

许可

EFIconFont 在 MIT 许可下可用。更多信息请查阅LICENSE 文件。