【发布时间】:2016-03-19 16:18:27
【问题描述】:
如何将UIFontDescriptorSymbolicTraits 转换为CTFontSymbolicTraits?
【问题讨论】:
标签: ios swift swift2 uifont uifontdescriptor
如何将UIFontDescriptorSymbolicTraits 转换为CTFontSymbolicTraits?
【问题讨论】:
标签: ios swift swift2 uifont uifontdescriptor
看看它们是如何定义的。这是 CTFontSymbolicTraits:
enum {
kCTFontItalicTrait = (1 << 0),
kCTFontBoldTrait = (1 << 1),
kCTFontExpandedTrait = (1 << 5),
kCTFontCondensedTrait = (1 << 6),
// ...
};
typedef uint32_t CTFontSymbolicTraits;
这里是 UIFontDescriptorSymbolicTraits:
typedef enum : uint32_t {
UIFontDescriptorTraitItalic = 1u << 0,
UIFontDescriptorTraitBold = 1u << 1,
UIFontDescriptorTraitExpanded = 1u << 5,
UIFontDescriptorTraitCondensed = 1u << 6,
// ...
} UIFontDescriptorSymbolicTraits;
注意到什么了吗?就对您而言重要的特征而言,它们实际上是相同的。没有什么可以转换的。
【讨论】:
CTFontCreateCopyWithSymbolicTraits(font: CTFont, _ size: CGFloat, _ matrix: UnsafePointer<CGAffineTransform>, _ symTraitValue: CTFontSymbolicTraits, _ symTraitMask: CTFontSymbolicTraits) -> CTFont? 方法要 CTFontSymbolicTraits 类型
UIFontDescriptor ,它为我提供了 UITextView 中所选文本的描述。我需要支持粗体和斜体(这些可以组合使用)。