2016-02-12 8 views
8

Come posso utilizzare il dynamic type text style "Titolo 1" e impostare il carattere in Chalkboard SE per un UILabel in uno storyboard?Come onorare le dimensioni di accessibilità dei tipi dinamici con un carattere personalizzato in uno storyboard iOS

Ho bisogno di rispettare la dimensione del tipo dinamico in iOS (Apple è stato incoraggiante dal iOS 7?) Ho anche bisogno di usare il carattere incorporato Chalkboard SE, che non è usato di default per gli "stili di testo" font. Attualmente sto utilizzando un carattere personalizzato come mostrato nell'immagine, ma ho bisogno del carattere per modificare le dimensioni in base al tipo dinamico /di Accessibilità dell'utente, così come fanno tutti i tipi di carattere di Stili di testo . I migliori Stili di testo l'opzione è Titolo 1, ma il font/typeface non è accettabile.

Font menu in Xcode. Custom checked and Title 1 highlighted

+0

Non può essere eseguito tramite lo storyboard da solo. Vedi [Come utilizzare un carattere personalizzato con dimensioni di testo dinamiche in iOS7] (http://stackoverflow.com/q/20510094/4151918) per le risposte programmatiche. –

+1

Questa è una quantità davvero incredibile di codice per una UILabel. È anche in Objective-C quindi dovrò tradurlo per questo progetto. Non esiste un modo pratico per utilizzare il tipo dinamico con un carattere personalizzato? – timeSmith

risposta

16

Anche se non è possibile specificare sia un carattere personalizzato e uno stile di testo preferito tramite Storyboard, non è difficile specificare a livello di codice una dimensione di tipo dinamico per il vostro tipo di carattere personalizzato:

let pointSize = UIFontDescriptor.preferredFontDescriptorWithTextStyle(UIFont‌​TextStyleTitle1).poi‌​ntSize 
let customFont = UIFont(name: "Chalkboard SE", size: pointSize) 

Quando ricevi uno UIContentSizeCategoryDidChangeNotification, usa lo stesso codice per aggiornare il font della tua etichetta.

+1

Un modo per farlo funzionare per iOS 8 o 7? UIFontTextStyleTitle1 è disponibile solo in iOS 9 – timeSmith

+1

Ho usato Title1 perché è quello che avevi specificato nella tua domanda. Se è necessario supportare un sistema operativo precedente, è necessario sostituire uno degli altri stili di testo. –

+0

Capisco che sia per questo che hai usato Title1. Ho appena specificato e impostato la dimensione del carattere su UIFontTextStyleHeadline * 1.6 per il resto di if #available (iOS 9.0, *) – timeSmith

Problemi correlati