Ho impostato un UITextView
e un UILabel
per utilizzare un carattere personalizzato. (È un font mongolo specchiato verticalmente, ma ho anche incluso il testo inglese per poter vedere l'effetto.) Le parole vengono visualizzate in Interface Builder, ma nel simulatore la maggior parte dei caratteri nello UITextView
sono solo caselle vuote. Stranamente, i caratteri nello UILabel
vengono visualizzati correttamente nel simulatore.Caratteri personalizzati visualizzati in IB ma non nel simulatore
Come è possibile visualizzarli anche nello UITextView
?
Note:
- Sto usando Xcode versione 6.3.2. Da this SO Q&A So che i caratteri personalizzati dovrebbero funzionare con Xcode 6 in IB.
- Ho aggiunto il mio file di font al progetto e l'ho selezionato dall'elenco dei caratteri personalizzati sia per lo
UITextView
che per loUILabel
. - Ho aggiunto la chiave "Caratteri forniti dall'applicazione" nel mio progetto
Info.plist
e aggiunto il mio carattere personalizzato. This question è molto simile (ma è diverso perché non menziona il problema
UITextView
eUILabel
). Al momento di questa stesura, l'OP per quella domanda non ha indicato se la risposta votata in alto ha aiutato o meno. Ho eseguito il codice in that answer per confermare che il mio carattere è davvero nel pacchetto. Ho ottenuto il seguente risultato, che conferma che è nel pacchetto, in modo che ancora non risolva il mio problema.Family : ChimeeWhiteMirrored Font : ChimeeWhiteMirrored
Qualcuno vedere il mio errore o avete altre idee?
Aggiornamento
Dopo aver ricevuto la downvote @ di darkheartfelt e comment alla mia risposta qui sotto, ho ricreato il mio problema originale pensando che forse avevo perso qualcosa. Anche se in iOS 9 il font appare in modo leggermente diverso nel simulatore, il problema di base è ancora lì: sembra ok in IB ma non nel simulatore.
Il problema può essere riprodotto (usando Xcode 7.1.1) come segue:
- Avviare un nuovo singolo progetto vista.
- Aggiungere il tipo di carattere per il progetto (può essere scaricato da here progetto github correlata)
- Nel file Info.plist aggiungere "font mediante l'applicazione" con il nome del font "ChimeeWhiteMirrored.ttf".
- Verificare che le "Risorse pacchetto di copia" del target contengano ChimeeWhiteMirrored.ttf.
- Aggiungere uno
UITextView
allo storyboard. - Nel IB Attributi pasta ispettore nel seguente testo:
1-10: one two three four five six seven eight nine ten
- Nel IB Attributi impostare il carattere su Custom e la famiglia a ChimeeWhiteMirrored.
Questo riproduce il problema per i caratteri speciali e come descritto nella mia risposta di seguito, l'unica cosa che ho trovato per risolvere questo problema è impostare il carattere in codice.
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var textView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
// set custom font
textView.font = UIFont(name: "ChimeeWhiteMirrored", size: (textView.font?.pointSize)!)
}
}
Se mi sbaglio o manca qualcosa, per favore fatemelo sapere. Fino ad allora dovrò continuare ad usare la mia risposta accettata di seguito.
La mia soluzione per questo: http://stackoverflow.com/a/40339276/3360896 –
Questo è il ** PERFECT WALKTHROUGH ** per questo problema: http://codewithchris.com/common-mistakes-with-adding-custom-fonts-to-your-ios-app/ – Fattie
Non c'è dubbio che l'attuale iOS/Xcode (2017) è bacato. ** A volte devi includere il nome del file del font nel tuo plist **, a volte non devi. È un bug – Fattie