2015-05-15 9 views
10

Ho un UIButton a cui ho assegnato un titolo attribuito in Interface Builder: ha un carattere specifico e una parte della stringa è di un colore diverso.Attributi titolo attribuiti impostati su UIButton in Interface Builder vengono ignorati nell'app

Quando carico la mia app, il colore viene mantenuto, ma l'applicazione ritorna il carattere di nuovo al default del sistema ...

Chiunque sperimentare questo o conoscere un modo per risolvere? Stavo cercando di evitare di dover impostare i titoli attribuiti nel codice.

Se è importante, il tipo di carattere che uso è Open Sans e viene visualizzato correttamente su altre etichette in cui ho specificato il carattere nel codice.

+0

Aveva esattamente lo stesso problema con un 'UILabel' (attribuito con un carattere personalizzato in IB). Sembra un bug ... – Alladinian

+1

Hai provato se riesci a impostarlo tramite il codice? E quale versione di iOS stai usando? Ho riscontrato un problema per il quale alcuni attributi non venivano applicati a etichette, pulsanti, ecc. Su 8.1 ma funzionavano bene in tutte le altre versioni. Non sono sicuro del perché questo sia. Voglio solo sapere se questo simile –

+0

funziona bene nel codice. Speravo di farlo funzionare da Interface Builder però. Questo è in esecuzione sul simulatore iOS 8.3. Dovrò provare alcune versioni diverse, immagino. – Adama

risposta

0

Ho avuto lo stesso problema una settimana fa. Stavo usando anche Open Sans. Ma ogni volta che ho provato a costruire ho ottenuto un errore di compilazione che non puntava da nessuna parte.

Comunque .. Ho appena aggiunto un'etichetta al pulsante e l'ho configurata come volevo.

2

Hai provato a selezionare il testo prima di cambiare il carattere del pulsante? example?

+1

Definitivamente. Il carattere viene visualizzato correttamente in IB, non solo nell'app. – Adama

-1

Ho avuto lo stesso problema con te, ma UIButton, il mio UILable è stato modificato in una nuova stringa, e sono sicuro che sia stato modificato su Interface Builder. Ma è ancora vecchia stringa quando la costruisci. Ho aperto il generatore di interfacce nel codice sorgente. Cercando la vecchia stringa, è ancora lì. Appena rimosso per risolvere il problema. (Non so perché questo sta accadendo). Forse dovresti aprire IB per essere sicuro.

Spero che ti aiuti.

0
NSMutableParagraphStyle *style = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; 
    [style setAlignment:NSTextAlignmentCenter]; 
    [style setLineBreakMode:NSLineBreakByWordWrapping]; 

    NSDictionary *dict1 = @{NSFontAttributeName:[UIFont fontWithName:@"Varela Round" size:15.0f], 
          NSForegroundColorAttributeName:[UIColor whiteColor], 
          NSParagraphStyleAttributeName:style}; 
    NSDictionary *dict2 = @{NSFontAttributeName:[UIFont fontWithName:@"Varela Round" size:10.0f], 
          NSForegroundColorAttributeName:[UIColor whiteColor], 
          NSParagraphStyleAttributeName:style}; 

    NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] init]; 
    [attString appendAttributedString:[[NSAttributedString alloc] initWithString:@"Expensed\n" attributes:dict1]]; 
    [attString appendAttributedString:[[NSAttributedString alloc] initWithString:@"Tap to edit"  attributes:dict2]]; 
    [cell.expenseTripButton setAttributedTitle:attString forState:UIControlStateNormal]; 
    [[cell.expenseTripButton titleLabel] setNumberOfLines:0]; 
    [[cell.expenseTripButton titleLabel] setLineBreakMode:NSLineBreakByWordWrapping];