2016-12-09 14 views
1

私はswift 3.0で作業しています。要件ごとに、太字と斜体のUILabelを作成したいと思います。そのために、私は次のコードを書いた。UILabelフォントをスウィフトで太字と斜体にする3.0

extension UIFont { 
    func withTraits(traits:UIFontDescriptorSymbolicTraits) -> UIFont { 
     let descriptor = fontDescriptor.withSymbolicTraits(traits) 
     return UIFont(descriptor: descriptor!, size: 0) //size 0 means keep size as it is 
    } 
    func bold() -> UIFont { 
     return withTraits(traits: .traitBold) 
    } 

    func italic() -> UIFont { 
     return withTraits(traits: .traitItalic) 
    } 
} 

しかし、このコード値では "descriptor"はnilの値を返します。最終的に、太字またはイタリック体のテキストを変換することはできません。

助けがあれば助かります。

+1

あなたのラベルの 'UIFont'に' Italic'と 'Bold'フォントがあるか確認してください。 –

答えて

0

フォントのいくつかは標準のみをサポートしており、一部は標準、太字、斜体、太字イタリックのみをサポートしているため、変更したいフォントがこれらの特性をサポートしていることを確認してください。これらの特性をシステムフォントで試してみると、システムフォントがそれらの特性をサポートしているので、その特性を返します。

関連する問題