测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017年2月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✓ |
由 Beat Richartz 维护。
动态类型非常棒,但调整排版设置以与现有的字体和内容大小兼容可能会令人生畏。这个库通过从CSV文件读取大小,使您重新掌控主动权,该CSV文件可以使用从Google Docs或其他常见的表格编辑器轻松生成。
目标是让您和您的平面设计师可以通过CSV文件进行合作,并利用动态类型的力量。
排版师将在指定的包中或指定的路径中查找名为 FontSizes.csv
的文件。 文件的内容应该看起来像这样。重要的是不要删除任何列或行,否则排版师将默认为所有字体的标准字体大小。
对于您项目中的字体,定义一个符合 TypesetterFont
协议的类。该协议的唯一要求是该对象响应 name
属性,例如它可能如下所示:
enum Font: String, TypesetterFont {
case Regular = "MyFont-Regular"
case Bold = "MyFont-Bold"
var name: String { return rawValue }
}
其中 "MyFont-Regular"
是您想要使用的字体的名称。
可以通过传递 TypesetterConfiguration
对象来传递排版师,在该对象中可以指定字体大小文件的另一个路径。
通过传递包来初始化。排版师将在包中查找 FontSizes
文件并缓存它,以便在同一个进程中的后续初始化中使用。
let bundle = NSBundle(forClass: self.dynamicType)
let typesetter = Typesetter(bundle: bundle)
您通常使用的只是 sizedFontFor
方法,您可以使用两种方式使用它:
TypesetterTextStyle
枚举记得上面定义的 Font
?以下是如何根据您的定义和用户字体大小设置获取已调整尺寸的字体:
let sizedFont = typesetter.sizedFontFor(.Body, font: Font.Bold)
这是方便方法,以便可以在使用 @IBDesignable
/ @IBInspectable
时使用Typesetter。由于 @IBInspectable
仍不支持枚举类型,因此您可以像这样使用没有类型检查的 sizedFontFor
版本:
let sizedFont = typesetter.sizedFontFor("Body", font: Font.Bold)
以下是一个关于 @IBDesignable
的示例,请访问维基页面
当然可以!