Search code examples
iosswiftuser-interfacefontstypography

How to turn on high-legibility alternates for system font in iOS?


I would like to activate high-legibility alternate style set for San Francisco font in UITextView, using Swift 3.1.


example of high-legibility alternates


Solution

  • I managed to find a solution for activating high-legibility alternates in UITextView.

    // TextViewController.swift
    
    import UIKit
    
    class TextViewController: UIViewController, UITextViewDelegate {
        // MARK: - Properties
    
        @IBOutlet weak var textView: UITextView!
    
        // MARK: - View Life Cycle
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            configureTextView()
        }
    
        // MARK: - Configuration
    
        func configureTextView() {
    
            // Activate high-legibility alternates for system font.
            let systemFontDescriptor = UIFont.systemFont(ofSize: 17).fontDescriptor
            let highLegibilityFontDescriptor = systemFontDescriptor.addingAttributes(
                [
                    UIFontDescriptorFeatureSettingsAttribute:
                    [
                        [
                            UIFontFeatureTypeIdentifierKey: kStylisticAlternativesType,
                            UIFontFeatureSelectorIdentifierKey: kStylisticAltSixOnSelector,
                        ],
                    ]
                ]
            )
            textView.font = UIFont(descriptor: highLegibilityFontDescriptor, size: 17)
        }
    }