【问题标题】:swift 2.0 convert UIFontDescriptorSymbolicTraits to CTFontSymbolicTraitsswift 2.0 将 UIFontDescriptorSymbolicTraits 转换为 CTFontSymbolicTraits
【发布时间】:2016-03-19 16:18:27
【问题描述】:

如何将UIFontDescriptorSymbolicTraits 转换为CTFontSymbolicTraits

【问题讨论】:

    标签: ios swift swift2 uifont uifontdescriptor


    【解决方案1】:

    看看它们是如何定义的。这是 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&lt;CGAffineTransform&gt;, _ symTraitValue: CTFontSymbolicTraits, _ symTraitMask: CTFontSymbolicTraits) -&gt; CTFont? 方法要 CTFontSymbolicTraits 类型
    • 唯一的是我有一个 UIFontDescriptor ,它为我提供了 UITextView 中所选文本的描述。我需要支持粗体和斜体(这些可以组合使用)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    相关资源
    最近更新 更多