2014-07-17 11 views
6

Ho una vista tabella che contiene celle personalizzate con un'etichetta. Voglio cambiare il carattere di questa etichetta in "Roboto-Bold". Ma non funziona (ancora lo stesso carattere predefinito). Quello che ho fatto finora:iOS: carattere personalizzato Robot-Bold (non funzionante)

  • scaricati "Roboto-Bold.ttf"
  • Aggiungere il tipo di carattere al mio progetto
  • info.plist Modificato aggiungendo: Fonts forniti da applicazione, item0 = Roboto-Bold.ttf
  • aggiunto questo codice:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    EventOptionCell *cell = (EventOptionCell *)[tableView dequeueReusableCellWithIdentifier:@"EventOptionCell"]; 

    switch (indexPath.row) { 
     case 0: 
      cell.optionLabel.text = @"TEST NEW FONT"; 
      cell.optionLabel.font = [UIFont fontWithName:@"Roboto-Bold" size:20]; 
      cell.imageView.image = [UIImage imageNamed:@"icon-test.png"]; 
      break; 

     default: 
      break; 
    } 

    return cell; 
} 
+0

Hai controllato che il carattere sia stato anche aggiunto al tuo obiettivo? – Cornelius

+0

Scusa, non ho capito cosa intendi, puoi spiegare? –

+2

Seleziona il file font in XCodes Project Navigator, quindi apri il pannello delle utility di File Inspector (Cmd-Opzione-0). Dovresti vedere un gruppo "Target Membership" e l'obiettivo del tuo progetto dovrebbe avere la casella selezionata. Se non lo controlla, prova di nuovo. – Cornelius

risposta

7

A volte, quando si aggiunge un file ttf in un progetto XCode non verrà aggiunto al tuo target. Ciò significa che non sarà incluso nel pacchetto di app compilato.

Selezionare il file del carattere in XCodes Project Navigator, quindi aprire il pannello delle utility di File Inspector (Cmd-Opzione-0). Dovresti vedere un gruppo "Target Membership" e l'obiettivo del tuo progetto dovrebbe avere la casella selezionata. Se non lo controlla, prova di nuovo.

+0

sto affrontando il problema anche dopo aver controllato l'appartenenza al target. gentilmente suggerire. –

+0

Assicurarsi che il carattere sia stato aggiunto correttamente al file Info.plist. Assicurati inoltre di utilizzare il nome del carattere corretto. Un buon test per vedere se il tuo font è stato aggiunto correttamente al progetto è quello di impostare un'etichetta in Interface Builder su un font personalizzato e dare un'occhiata al selettore di font. – Cornelius

+0

Sì, ho ricontrollato ieri stesso, funziona perfettamente. grazie per la risposta –

1

Se si è aggiunto a plist e di progetto, verificare se la famiglia di font na mes è esattamente uguale al nome del file, a volte sono un po 'diversi (forse 'Robot Bold' o giù di lì) ...

frammento che potrebbe aiutare (da How to check if a font is available in version of iOS?)

NSArray *fontFamilies = [UIFont familyNames]; 

for (int i = 0; i < [fontFamilies count]; i++) { 
    NSString *fontFamily = [fontFamilies objectAtIndex:i]; 
    NSArray *fontNames = [UIFont fontNamesForFamilyName:[fontFamilies objectAtIndex:i]]; 
    NSLog (@"%@: %@", fontFamily, fontNames); 
} 
1

Se hai fatto tutto quanto sopra e ancora non funziona. Un altro XCODE bug che può causare che - Se non hai mai usato questo tipo di carattere personalizzato su storyboard/XI ter - aggiungere un'etichetta nascosta con questo tipo di carattere (da Interface Builder) e poi improvvisamente si riconosce a livello di codice ...

- Xcode 7.3.1 - ha ancora questo errore

+0

È così rinfrescante per vedere nuovi bug di Apple ogni tanto. Posso chiederti come sei arrivato a questa soluzione? – Abdul91

Problemi correlati