排版师 1.0.0

排版师 1.0.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2017年2月
SwiftSwift 版本3.0
SPM支持 SPM

Beat Richartz 维护。



排版师 1.0.0

  • 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 对象来传递排版师,在该对象中可以指定字体大小文件的另一个路径。

使用 Typesetter

通过传递包来初始化。排版师将在包中查找 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 的示例,请访问维基页面

贡献

当然可以!