11
votes

Les attributs de titre attribués définis sur UIButton in Interface Builder sont ignorés dans l'application

J'ai un uibutton que j'ai donné un titre attribué dans l'interface Builder: elle a une police spécifique et une partie de la chaîne est une couleur différente.

Lorsque je charge mon application, la couleur est maintenue, mais l'application revient la police à la valeur par défaut du système ...

Quelqu'un l'a-t-il expérimenté ou connais un moyen de résoudre? Essayait d'éviter d'avoir à définir les titres attribués dans le code.

Si cela importe, la police que j'utilise est Open Sans, et elle s'affiche correctement sur d'autres étiquettes où j'ai spécifié la police dans le code.


5 commentaires

Avait exactement le même problème avec un Uilabel (attribué avec une police personnalisée dans IB). Semble être un bug ...


Avez-vous essayé si vous pouvez la définir via du code? Et quelle version d'iOS utilisez-vous? J'ai eu un problème que certains attributs n'étaient pas appliqués aux étiquettes, aux boutons, etc. sur 8,1 mais ont fonctionné correctement dans toutes les autres versions. Je ne sais pas pourquoi c'est. Je veux juste savoir si ce semblable


Fonctionne bien en code. Espérait que cela fonctionne de l'interface Builder. Ceci est en cours d'exécution sur IOS 8.3 Simulator. Je devrai essayer des versions différentes, je suppose.


D'après mon expérience, la fonctionnalité de chaîne attribuée à IB manque cruellement. Personnellement, je recommanderais de faire cela dans le code pour sauver le mal de tête.


Vous ne changez pas le texte lui-même en code, n'est-ce pas? Cela pourrait réinitialiser les attributs en fonction de la façon dont vous allez à ce sujet.


3 Réponses :


0
votes

J'ai eu le même problème il y a une semaine. J'utilisais aussi Open Sans. Mais chaque fois que j'ai essayé de construire, j'ai eu une erreur de compilation qui pointe nulle part.

De toute façon .. Je viens d'ajouter une étiquette sur le bouton et configuré la façon dont je voulais.


0 commentaires

2
votes

Avez-vous essayé de sélectionner du texte avant de modifier la police de bouton? exemple?


1 commentaires

Absolument. La police affiche correctement dans IB, juste pas dans l'application.



0
votes
 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];

0 commentaires