Monospacer
Monospacer是一个为macOS、iOS、tvOS和watchOS创建字体等宽变体的框架。
安装
Swift包管理器
要使用Swift包管理器与Monospacer一起使用,请在您的Package.swift
文件中添加一个依赖关系。
dependencies: [
.package(url: "https://github.com/SlaunchaMan/Monospacer.git", from: "0.6.0")
]
CocoaPods
要使用CocoaPods与Monospacer一起使用,请在您的Podfile
中添加一个依赖关系
target 'MyAwesomeApp' do
pod 'Monospacer'
end
然后运行pod install
,并使用生成的.xcworkspace
文件打开您的项目。
Carthage
要使用Monospacer配合Carthage,请在您的Cartfile
中添加依赖项。
github "SlaunchaMan/Monospacer"
运行carthage update
来构建框架。然后按照Carthage的README中的其余步骤将框架添加到项目中,配置运行脚本构建阶段等。
手动
要手动将Monospacer集成到您的项目中,将Monospacer.swift
拖放到您的Xcode项目中,并将其添加到您希望使用它的所有目标中。
使用Monospacer
Swift
要使用Monospacer,使用UIFont
(对于macOS是NSFont
)上的扩展。
let newFont = try? myFont.withMonospaceDigits()
您还可以在字体描述符上使用它来添加等宽数字属性(如果您需要在将其用于创建字体之前对描述符进行其他修改,则很有用)。
let newFontDescriptor = myFontDescrpitor.withMonospaceDigits
Objective-C
Monospacer还可以与Objective-C配合使用。
UIFont *newFont = [myFont fontWithMonospaceDigitsError:NULL];
UIFontDescriptor *newFontDescriptor = myFontDescriptor.descriptorForMonospaceDigits;
错误处理
并非所有字体都支持等宽数字。在字体不支持此功能的情况下,Monospacer会抛出MonospacerError.fontUnsupported
错误。在macOS上,如果字体创建失败,Monospacer会抛出MonospacerError.fontCreationFailed
错误。您可以在Swift或Objective-C中处理这些错误。
// Swift
do {
let font = try someFont.withMonospaceDigits()
}
catch MonospacerError.fontUnsupported {
NSLog("Whoops! This font isn't supported!")
}
catch MonospacerError.fontCreationFailed {
NSLog("Uh-oh. Creating this font failed.")
}
catch {
fatalError("Unexpected error: \(error.localizedDescription)")
}
// Objective-C
NSError *error = nil;
UIFont *font = [font fontWithMonospaceDigitsError:&error];
if (font == nil) {
if (error.domain == MonospacerErrorDomain &&
error.code == MonospacerErrorFontUnsupported) {
NSLog(@"Whoops! This font isn't supported!");
}
}
如果您不关心这些错误,可以安全地忽略它们。
let newFont = try? font.withMonospaceDigits()
myLabel.font = newFont ?? font