2017-06-25 1 views
0

Je suis en train d'ajouter une image à une chaîne attribuée:Pourquoi l'image NSTextAttachment n'est-elle pas affichée?

NSTextAttachment *locationIcon = [[NSTextAttachment alloc] init]; 
locationIcon.image = [UIImage imageNamed:@"location-pin-icon"]; 
NSAttributedString *iconString = [NSAttributedString attributedStringWithAttachment:locationIcon]; 
[string appendAttributedString:iconString]; 
NSAttributedString *locationNameString = [[NSAttributedString alloc] initWithString:@"some text" attributes:linkAttributes]; 
[string appendAttributedString:locationNameString]; 

Alors je simplement mis myLabel.text = string; (où myLabel est un TTTAttributedLabel)

location-pin-icon est une image valide (je l'ai vérifié dans débogage aussi). Cependant, l'icône d'emplacement n'est pas affichée dans l'étiquette (le "texte" suivant est parfaitement affiché, et linkAttributes est juste une collection de police système avec une couleur bleue personnalisée). J'ai également essayé de définir manuellement des limites à la pièce jointe de texte, ou de laisser un espace avant le texte, mais rien ne semble fonctionner.

Qu'est-ce que je fais mal?

+0

Si vous imprimez 'string', cela apparaît-il? En outre, où est votre code où vous définissez 'attributeString'? – Larme

+0

Et si vous utilisez un 'UILabel' (alors' myUILabel.attributedText = string; ', cela fonctionne-t-il? Il n'était pas encore disponible (https://github.com/TTTAttributedLabel/TTTAttributedLabel/issues/287) Le problème est il y a longtemps, mais encore – Larme

+0

@Larme il apparaît dans ma chaîne quand je le 'po', bien qu'il apparaisse comme un objet' 'au lieu d'une description utile –

Répondre

0

Il était apparemment dû à la mise en œuvre de TTTAttributedLabel. La bibliothèque semble cassée. Quand je l'ai changé, la pièce jointe a commencé à s'afficher correctement.