NSAttributedString - UILabel - multiline ?
Bonjour,
J'ai actuellement un soucis. Je souhaite afficher un NSAttributedString dans un UILabel, dans une UITableViewCell. Jusque là tout va bien.
Avec le code suivant tout fonctionne (C'est à dire que le label s'affiche bien sur 2 lignes comme prévu):
(Sur iOS 6 comme sur iOS 7)
- (void)setTitle:(NSString *)title
{
NSMutableAttributedString *attributed = [[NSMutableAttributedString alloc] initWithString:title];
self.titleLabel.attributedText = attributed;
}
Mais si je rajoute un style de paragraphe, le label s'affiche sur 2 lignes, mais je n'ai plus les 3 petits points à la fin du label.
(Sur iOS 6 comme sur iOS 7)
- (void)setTitle:(NSString *)title
{
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];
NSMutableAttributedString *attributed = [[NSMutableAttributedString alloc] initWithString:title];
[attributed addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, title.length)];
self.titleLabel.attributedText = attributed;
}
Encore pire, si je rajoute un LineSpacing dans mon paragrapheStyle,
- Sur iOS 7: le label s'affiche sur deux lignes, mais je n'ai pas les 3 petits points.
- Sur iOS 6: le label s'affiche seulement sur une ligne, et je n'ai pas les 3 petits points.
- (void)setTitle:(NSString *)title
{
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy];
[paragraphStyle setLineSpacing:3];
NSMutableAttributedString *attributed = [[NSMutableAttributedString alloc] initWithString:title];
[attributed addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, title.length)];
self.titleLabel.attributedText = attributed;
}
Quelqu'un à une idée du pourquoi, et du comment résoudre ça ?
Mots clés:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Donne la valeur adéquate à la propriété lineBreakMode de ton NSParagraphStyle pour indiquer ce que tu veux comme type de wrapping et d'ellipse et ça devrait être bon.
Ouai pour les 3 petits points j'ai trouvé ça, 5 minutes après avoir poster le message.
Mais par contre, ça ne fonctionne que sur iOS 7.
Sur iOS 6, le label ne s'affiche que sur une ligne sans les 3 petits points.
Merci de la réponse.
Une idée pour le faire marché aussi sur iOS 6 ?