1

Xcode 7、iOS 9 のターゲット プロジェクトにカスタム フォントが含まれています。フォントを等幅にしたい。私はこれを試しましたが、うまくいきませんでした:

let originalFont = UIFont(name: "My Custom Font", size: 18)
let originalFontDescriptor = originalFont!.fontDescriptor()

let fontDescriptorFeatureSettings = [
    [
        UIFontFeatureTypeIdentifierKey: kNumberSpacingType,
        UIFontFeatureSelectorIdentifierKey: kMonospacedNumbersSelector
    ]
]

let fontDescriptorAttributes = [UIFontDescriptorFeatureSettingsAttribute: fontDescriptorFeatureSettings]
let fontDescriptor = originalFontDescriptor.fontDescriptorByAddingAttributes(fontDescriptorAttributes)
let font = UIFont(descriptor: fontDescriptor, size: 0)

topLabel.font = font

上記のコードの有無にかかわらず、ラベルは適切なカスタム フォントで表示されます。上記のコードは何もしません。

4

3 に答える 3

0

使用しているコードは、フォントをモノスペース化していません。

等幅モードで数字をレンダリングするようにフォントを微調整しています。したがって、このフォントの数字はすべて同じ幅になります。

以下は 4 つのラベルの例です。1 つはカスタム フォント Docis Light を使用しており、2 番目は等幅数字をオンにした Docis Light、3 番目は同じサイズのシステム フォント、4 番目は等幅数字をオンにしたシステム フォントです。

iOS での等幅数字フォントの微調整

ご覧のように、このカスタム フォントは、調整を必要とせずに、すぐに使用できる等幅数字機能を既にサポートしています。

モノスペース (数字だけでなく) フォントを使用する必要がある場合は、カスタムのモノスペース フォント (モノスペースになるように設計されています) を使用するか、Courier や Menlo などの組み込みの iOS モノスペース フォントを使用する必要があります (利用可能なすべての iOS フォントについては、http: //iosfonts.com/ )

これは、同じシナリオでどのように見えるかです:

courier および menlo 等幅 iOS フォント

微調整の有無にかかわらず、それらはすでに等幅であり、数字も等幅です。

ここで同様の質問に答えました。おそらく、画像の代わりに回答をリンクするだけでよいのですが、はるかに視覚的です。

于 2016-10-14T05:04:47.833 に答える