TypographyKit 使您可以轻松地在 iOS 应用程序中定义排版样式和调色板,帮助您在设计中实现视觉一致性,并支持 动态类型,即使在使用自定义字体时也是如此。 [摘要] [详细]
要了解更多关于如何使用 TypographyKit 的信息,请查看下面的目录
fontTextStyleName
键路径字符串设置为 Interface Builder 中排版样式的名称)。对 SwiftUI 颜色的首要支持 - 要获取颜色,请使用 TK.color(named:)
。
您可以指定一个回退颜色,以便在您忘记定义颜色时使用。使用 fallback-color
键来指定在这种情况下应使用哪种颜色。
fallback-color
您可以指定一个开发颜色,以便在您忘记在开发版本中定义颜色时使用。此颜色可能与回退颜色不同。例如,您可能希望使用易于注意的颜色(如红色)来清晰地表明您忘记在开发版本中定义颜色。但是,您可能希望确保此红色永远不会在生产版本中显示 - 这就是为什么开发颜色永远不会在生产版本中显示的原因(而是使用回退颜色)。
设置:development-color
默认值:red
设置:is-development
默认值:在 #DEBUG 版本中为 true
;否则为 false
设置:should-use-development-colors
默认值:true
您可以选择性地指定,如果您忘记定义颜色,您的开发应用版本会崩溃。这使得您在开发过程中更不可能忘记指定颜色值。此设置仅影响开发版本,因此无需担心生产版本可能会崩溃。
should-crash-if-color-not-found
false
要开始使用该框架,现在 import TypographyKit
然后按如下方式配置
TypographyKit.configure(
with: TypographyKitConfiguration.default
.setConfigurationURL(configurationURL)
)
或者,对于支持 iOS 13 及更高版本的开发者,存在此方法的 async
版本
await TypographyKit.configure(with:
TypographyKitConfiguration.default.setConfigurationURL(configurationURL)
)
有关更改的详细列表,请参阅 CHANGELOG.md。
CocoaPods 是一个依赖管理器,它将依赖项集成到您的 Xcode 工作区中。要使用 RubyGems 安装它,请运行
gem install cocoapods
要使用 Cocoapods 安装 TypographyKit,只需将以下行添加到您的 Podfile
pod "TypographyKit"
然后运行命令
pod install
有关更多信息,请 参阅此处。
Carthage 是一个依赖管理器,它生成一个二进制文件,用于手动集成到您的项目中。可以通过 Homebrew 使用以下命令安装
brew update
brew install carthage
为了通过 Carthage 将 TypographyKit 集成到您的项目中,请将以下行添加到您的项目的 Cartfile
github "rwbutler/TypographyKit"
从 macOS 终端运行 carthage update --platform iOS
以构建框架,然后将 TypographyKit.framework
拖到您的 Xcode 项目中。
有关更多信息,请 参阅此处。
Example 目录中存在一个示例应用,以提供一些入门指南。
在您的应用项目中包含一个 TypographyKit.json (示例) 或 TypographyKit.plist (示例) 作为您定义颜色和排版样式的一部分
{
"typography-colors": {
"background": {
"dark": "dark royal-blue",
"light": "lightest gray"
},
"gold": "#FFAB01",
"royal-blue": "#08224C"
},
"typography-kit": {
"labels": {
"line-break": "word-wrap"
},
"minimum-point-size": 10,
"maximum-point-size": 100,
"point-step-size": 2,
"point-step-multiplier": 1,
"scaling-mode": "uifontmetrics-with-fallback"
},
"ui-font-text-styles": {
"heading": {
"font-name": "Avenir-Medium",
"point-size": 36,
"text-color": "text",
"letter-case": "regular"
}
}
}
在您的应用中定义与 .plist 中定义的 UIFont.TextStyles 匹配的附加 UIFont.TextStyles
extension UIFont.TextStyle
{
static let heading = UIFont.TextStyle(rawValue: "heading")
}
在您通常在 UILabel 上设置文本的位置,例如
self.titleLabel.text = "My label text"
使用 TypographyKit 的 UIKit 扩展
self.titleLabel.text("My label text", style: .heading)
或者,如果您的文本已通过 IB 设置,只需以编程方式设置 UIFont.TextStyle
self.titleLabel.fontTextStyle = .heading
如果您乐意使用字符串,则设置 fontTextStyle
属性的另一种方法是在您的 UIKit 元素上将键路径 fontTextStyleName
设置为表示您的 fontTextStyle 的字符串值 - 在上面的示例中,这将是“heading”。
使用此方法,可以在您的应用程序中以零代码支持动态类型。
您的 UILabel 和 UIButton 元素将在设置 UIFont.TextStyle 后自动响应 iOS 上动态类型设置的更改,而无需进一步操作。
您在 TypographyKit.plist 中定义的排版样式可以选择性地包含文本颜色和字母大小写。
<key>ui-font-text-styles</key>
<dict>
<key>heading</key>
<dict>
<key>font-name</key>
<string>Avenir-Medium</string>
<key>point-size</key>
<integer>36</integer>
<key>text-color</key>
<string>#2C0E8C</string>
<key>letter-case</key>
<string>upper</string>
</dict>
</dict>
从 1.1.3 版本开始,可以使用现有的排版样式来创建新的样式。例如,假设您想基于现有样式创建一个新样式,但更改文本颜色。我们可以使用 extends
关键字来扩展已存在的样式,然后指定要覆盖该样式的哪些属性,例如 text-color
属性。
我们可以创建一个名为 interactive-text
的新排版样式,该样式基于我们已定义的名为 paragraph
的样式,如下所示
PLIST
<key>paragraph</key>
<dict>
<key>font-name</key>
<string>Avenir-Medium</string>
<key>point-size</key>
<integer>16</integer>
<key>text-color</key>
<string>text</string>
<key>letter-case</key>
<string>regular</string>
</dict>
<key>interactive-text</key>
<dict>
<key>extends</key>
<string>paragraph</string>
<key>text-color</key>
<string>purple</string>
</dict>
JSON
"paragraph": {
"font-name": "Avenir-Medium",
"point-size": 16,
"text-color": "text",
"letter-case": "regular"
},
"interactive-text": {
"extends": "paragraph",
"text-color": "purple"
}
Android 从一开始就为开发者提供了在 colors.xml 文件中定义应用调色板的方法。Colors.xml 还允许开发者通过十六进制值定义颜色。TypographyKit 允许开发者通过在 TypographyKit.plist 中创建一个条目来定义应用的调色板。
<key>typography-colors</key>
<dict>
<key>blueGem</key>
<string>#2C0E8C</string>
</dict>
可以使用十六进制值、RGB 值或简单颜色(通过使用其名称,例如“蓝色”)来定义颜色。
<key>typography-colors</key>
<dict>
<key>blueGem</key>
<string>rgb(44, 14, 140)</string>
</dict>
创建一个 UIColor 扩展,以便在您的整个应用中使用新定义的颜色
extension UIColor {
static let blueGem: UIColor = TypographyKit.colors["blueGem"]!
}
或
extension UIColor {
static let fallback: UIColor = .black
static let blueGem: UIColor = TypographyKit.colors["blueGem"] ?? fallback
}
您的命名颜色可以在 TypographyKit.plist 中定义排版样式时使用。
<key>ui-font-text-styles</key>
<dict>
<key>heading</key>
<dict>
<key>font-name</key>
<string>Avenir-Medium</string>
<key>point-size</key>
<integer>36</integer>
<key>text-color</key>
<string>blueGem</string>
</dict>
</dict>
也可以在具体情况下覆盖排版样式的文本颜色
myLabel.text("hello world", style: .heading, textColor: .blue)
TypographyKit 支持通过资产目录定义颜色。只需在配置文件中将颜色名称作为样式的一部分包含在内,如果在您的资产目录中找到该颜色,它将自动应用。
提供了有用的 String 扩展,可以轻松转换字母大小写。
let pangram = "The quick brown fox jumps over the lazy dog"
let upperCamelCased = pangram.letterCase(.upperCamel)
print(upperCamelCased)
// prints TheQuickBrownFoxJumpsOverTheLazyDog
具有许多便捷功能
let upperCamelCased = pangram.upperCamelCased()
// prints TheQuickBrownFoxJumpsOverTheLazyDog
let kebabCased = pangram.kebabCased()
// prints the-quick-brown-fox-jumps-over-the-lazy-dog
排版样式可以分配默认的字母大小写。
<key>ui-font-text-styles</key>
<dict>
<key>heading</key>
<dict>
<key>font-name</key>
<string>Avenir-Medium</string>
<key>point-size</key>
<integer>36</integer>
<key>letter-case</key>
<string>upper</string>
</dict>
</dict>
但是,有时您可能需要覆盖排版样式的默认字母大小写
myLabel.text("hello world", style: .heading, letterCase: .capitalized)
默认情况下,对于 iOS 辅助功能设置中“更大文本”滑块上的每个刻度,您的字体磅值将增加 2 磅,但您可以选择性地指定您的 UIKit 元素如何响应 UIContentSizeCategory 中的更改。
您可以通过在您的 TypographyKit.json
(或首选 TypographyKit.plist
)文件中包含一个以键 typography-kit
开头的字典来指定您自己的磅值步长和乘数。
<key>typography-kit</key>
<dict>
<key>minimum-point-size</key>
<integer>10</integer>
<key>maximum-point-size</key>
<integer>100</integer>
<key>point-step-size</key>
<integer>2</integer>
<key>point-step-multiplier</key>
<integer>1</integer>
</dict>
您可以选择使用 minimum-point-size
和 maximum-point-size
属性将字体磅值限制为下限和/或上限。
TypographyKit 还允许您远程托管您的配置,以便您的颜色和字体样式可以动态更新。为此,只需将以下行添加到您的应用委托,以便在您的应用完成启动时调用它
TypographyKit.configurationURL = URL(string: "https://github.com/rwbutler/TypographyKit/blob/main/Example/TypographyKit/TypographyKit.plist")
您的排版样式和颜色将在下次您的应用启动时更新。但是,如果您需要更快地更新样式,您可以调用 TypographyKit.refresh()
。
TypographyKit 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。
AnimatedGradientView |
---|
![]() |
Cheats | Connectivity | FeatureFlags | Skylark | TypographyKit | Updates |
---|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
cdd
即可快速清除您的 DerivedData 目录。Config Validator | IPA Uploader | Palette |
---|---|---|
![]() |
![]() |
![]() |