2014-07-21 12 views
5

Non riesco a impostare il carattere personalizzato per UILabel in XCode.Impossibile impostare il carattere personalizzato per UILabel in XCode

Questo è quello che ho provato:

  • Scarica font "JennaSue" - http://www.dafont.com/jenna-sue.font

  • Open "app-info.plist" nella cartella "File di supporto"

  • Aggiungi nuova riga nell'elenco con il tasto "Caratteri forniti dall'applicazione"

  • In questo array aggiungere "JennaSue.ttf"

  • usarlo nel codice come questo:

self.someLabel.font = [UIFont fontWithName:@"JennaSue" size:14];

E non succede nulla - il font di default è visibile.

Perché? Che cosa sto facendo di sbagliato? Come posso ripararlo?

+0

provato self.someLabel.font = [UIFont fontWithName: @ dimensione "Jenna-sue": 14]; ? – Rajesh

+0

come @ user3781721 ha detto penso che hai dimenticato l'estensione .ttf – Jasmin

+0

Assicurati di aver aggiunto il carattere al tuo ** target ** e passa il nome _Postscript_ a 'fontWithName: size:' (puoi trovarlo nell'app Libro Font). Vedi anche questa risposta rilevante: http://stackoverflow.com/questions/24605844/some-font-not-showing-in-myapp-from-ios/24606107#24606107 – Alladinian

risposta

0
self.someLabel.font = [UIFont fontWithName:@"JennaSue.ttf" size:self.someLabel.font.pointSize]; 
+0

Non funziona anche – FrozenHeart

+0

Forse ho bisogno di aggiungere il file .ttf nella cartella specifica? L'ho messo anche nella cartella "File di supporto" – FrozenHeart

+0

sì aggiungi il tuo carattere nella cartella del progetto – Hardik

5
  1. andare su File del progetto info.plist,
  2. clic destro e selezionare Add row,
  3. Tipo Fonts provided by application nella nuova riga,
  4. Digitare il nome del font desiderato come prodotti di questo tasto.
  5. Trascinare e rilasciare il file di font nel progetto,
  6. applicarlo al testo che si desidera:

someLabel.font = [UIFont fontWithName:@"JennaSue" size: 12.0];

penso che ti sei perso il punto 5 lassù.

Aggiornamento: Nel fare il punto 5, ricordatevi di controllare i segni per copiare il file vero e proprio nella directory del progetto:

enter image description here Ricordarsi di pulire il vostro progetto premendo il tasto "Command + Alt + Maiusc + K" (! IRRC) e poi andare al vostro

e poi andare a fasi di creazione del vostro progetto, e assicurarsi che si può vedere il file .ttf di file tra i file di risorse:

enter image description here

P.S. Al momento non sono sul mio Mac, quindi ho utilizzato gli screenshot da this tutorial. Ecco perché ho oscurato le linee inutili per il tuo problema.

+0

No, ho messo questo file nella cartella "File di supporto" – FrozenHeart

+0

Uh, Ok. Ma assicurati che Xcode abbia effettivamente ricevuto e digerito il file! Dal momento che è solo una cagata a riconoscere i file aggiunti a volte. Sto aggiornando la mia risposta. – Neeku

0

ho usato seguente codice ed è fatta

UILabel * lblTest = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 200, 100)]; 

    lblTest.font = [UIFont fontWithName:@"JennaSue" size:25.0]; 
    lblTest.text = @"Hello World"; 

    [self.view addSubview:lblTest]; 

e se non ancora lavorando guardando il tuo libro carattere di sistema e cercare quel tipo di carattere e quel tipo di carattere è necessario utilizzare per farlo lavorare

anche provare questo lblTest.font = [UIFont fontWithName:@"Jenna Sue" size:25.0];

2

Controllare questo codice:

NSArray *names = [UIFont familyNames]; 
NSLog(@"Font FamilyNames : "); 
for (NSString *name in names) { 
    NSLog(@"Font Family: %@",name); 
    NSArray *fontFaces = [UIFont fontNamesForFamilyName:name]; 
    for (NSString *fname in fontFaces) { 
      NSLog(@" %@",fname); 
    } 
    } 

    self.someLabel.font = [UIFont fontWithName:@"use correct name" size:self.someLabel.font.pointSize]; 

e utilizzare lo stesso nome stampato con NSLog.

0

è visibile il file in Compile Fonte ora ... se sì, allora si può avere il nome del font wrong..sometimes i nomi dei caratteri sono diversi, allora il nome del file ... prova l'esecuzione di un

for (NSString *familyName in [UIFont familyNames]) 
{ 
    for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) 
    { 
     NSLog(@"%@", fontName); 
    } 
} 

queste linee di codice .. sarai in grado di vedere il nome effettivo del carattere e usare quel nome invece

+0

Sì, è elencato in "Compile sources" ora, ma questo codice non stampa il nome di questo font – FrozenHeart

+0

quindi significa che il tuo file non è stato rilevato ... .try per eliminare il file dal tuo progetto e reimportarlo includilo ancora una volta nel tuo info.plist..anche puoi controllare se il tuo font è effettivamente un TTF (True Type Font) .. se il resto è questo, allora potrebbe essere il tuo problema – Geet

14

Assicurati che il tuo carattere sia in Risorse di Bundle. Per qualche ragione Xcode non sta importando carattere personalizzato correttamente la maggior parte del tempo:

enter image description here

enter image description here

enter image description here

Ho il lavoro di carattere:

enter image description here

Codice di esempio: here

+0

Ho anche dovuto aggiungere a Info.plist e aggiungi: Caratteri forniti dall'applicazione: nomefile – jdl

1

Dopo aver aggiunto un carattere personalizzato a Xcode, non dimenticare di aggiungere il carattere a plist. Project settings>Info>Custom IOS target properties

enter image description here Aggiungi proprietà Fonts provided by application e digitare il carattere personalizzato (il nome del file di font). Quindi è possibile utilizzare tale esempio di codice self.someLabel.font = [UIFont fontWithName:@"JennaSue" size:14];

Avviso: assicurarsi di utilizzare proprio nome del font nel codice. Per fare ciò dovresti aggiungere questo font al libro dei caratteri del tuo Mac, aprire il font, scegliere quel font e controllare il font del nome corretto.

Spero che questo aiuti

0

Il tipo di carattere potrebbe essere danneggiato o qualcosa del genere. Ho provato le soluzioni fornite da Gabriel.Massana & Neeku e ha funzionato su alcuni tipi di carattere. Prova ad aggiungere il carattere al tuo Mac. Se ha mostrato un problema di verifica, molto probabilmente non funzionerà nella tua app. Spero che questo aiuti

0

Ecco @ risposta di Ritu a Swift 2. Basta mettere questo nel vostro AppDelegate, o in modalità viewDidLoad della vostra View Controller:

let names = UIFont.familyNames() 
for name in names { 
    print("Font Family: \(name)") 
    let fontFaces = UIFont.fontNamesForFamilyName(name) 
    for fname in fontFaces { 
     print("   \(fname)") 
    } 
} 

avrete tutti i vostri nomi di font in log della console, copia e incolla quello che ti serve nel tuo codice.

Problemi correlati