如何使用小型Caps?
How to use small Caps?
我正在尝试使用具有小型大写字母的字体。我在某个人的网站上发现了一个 UIFont 扩展,声称它可以处理小型大写字母,但可惜,没有运气。有什么想法吗?
extension UIFont {
func smallCapsFontVariant(smallCapsForUppercase: Bool = true) -> UIFont {
var features = [
[UIFontFeatureTypeIdentifierKey: kLowerCaseType,
UIFontFeatureSelectorIdentifierKey: kLowerCaseSmallCapsSelector]
]
if smallCapsForUppercase {
features.append([UIFontFeatureTypeIdentifierKey: kUpperCaseType,
UIFontFeatureSelectorIdentifierKey: kUpperCaseSmallCapsSelector])
}
let smallCapsFontDescriptor = fontDescriptor().fontDescriptorByAddingAttributes([
UIFontDescriptorFeatureSettingsAttribute : features
])
return UIFont(descriptor: smallCapsFontDescriptor, size: 0d)
}
问题是很少有字体 具有 小型大写字母变体。如果您不使用这少数几个之一,您将不会获得小型大写字母。您无法神奇地创建不存在的功能...
这是访问 Didot 的小型大写变体的代码:
let desc = UIFontDescriptor(name:"Didot", size:18)
let d = [
UIFontFeatureTypeIdentifierKey:kLetterCaseType,
UIFontFeatureSelectorIdentifierKey:kSmallCapsSelector
]
let desc2 = desc.fontDescriptorByAddingAttributes(
[UIFontDescriptorFeatureSettingsAttribute:[d]]
)
let f = UIFont(descriptor: desc2, size: 0)
现在 f
是 Didot 的小型大写变体,您可以在您的界面中使用它。
如果您使用的字体不是 Didot,请将其替换为该代码;但一定要确保你的字体有一个小的大写变体,否则这将不起作用。
我正在尝试使用具有小型大写字母的字体。我在某个人的网站上发现了一个 UIFont 扩展,声称它可以处理小型大写字母,但可惜,没有运气。有什么想法吗?
extension UIFont {
func smallCapsFontVariant(smallCapsForUppercase: Bool = true) -> UIFont {
var features = [
[UIFontFeatureTypeIdentifierKey: kLowerCaseType,
UIFontFeatureSelectorIdentifierKey: kLowerCaseSmallCapsSelector]
]
if smallCapsForUppercase {
features.append([UIFontFeatureTypeIdentifierKey: kUpperCaseType,
UIFontFeatureSelectorIdentifierKey: kUpperCaseSmallCapsSelector])
}
let smallCapsFontDescriptor = fontDescriptor().fontDescriptorByAddingAttributes([
UIFontDescriptorFeatureSettingsAttribute : features
])
return UIFont(descriptor: smallCapsFontDescriptor, size: 0d)
}
问题是很少有字体 具有 小型大写字母变体。如果您不使用这少数几个之一,您将不会获得小型大写字母。您无法神奇地创建不存在的功能...
这是访问 Didot 的小型大写变体的代码:
let desc = UIFontDescriptor(name:"Didot", size:18)
let d = [
UIFontFeatureTypeIdentifierKey:kLetterCaseType,
UIFontFeatureSelectorIdentifierKey:kSmallCapsSelector
]
let desc2 = desc.fontDescriptorByAddingAttributes(
[UIFontDescriptorFeatureSettingsAttribute:[d]]
)
let f = UIFont(descriptor: desc2, size: 0)
现在 f
是 Didot 的小型大写变体,您可以在您的界面中使用它。
如果您使用的字体不是 Didot,请将其替换为该代码;但一定要确保你的字体有一个小的大写变体,否则这将不起作用。