web-dev-qa-db-fra.com

Comment faire UILabel multiligne dans iOS?

Je remplis dynamiquement le titre (UILabel). Parfois, c'est un peu trop long et IOS serrez la police pour qu'elle tienne dans la largeur. Existe-t-il un moyen de faire une multiligne avec la même taille de police?

34
HardCode

Réglez adjustsFontSizeToFitWidth sur NO et numberOfLines sur 0.

documents numberOfLines

Cette propriété contrôle le nombre maximal de lignes à utiliser pour ajuster le texte de l'étiquette dans son rectangle de délimitation. La valeur par défaut de cette propriété est 1. Pour supprimer toute limite maximale et utiliser autant de lignes que nécessaire, définissez la valeur de cette propriété sur 0.

Si vous contraignez votre texte à l'aide de cette propriété, tout texte qui ne tient pas dans le nombre maximal de lignes et à l'intérieur du rectangle englobant de l'étiquette est tronqué à l'aide du mode de saut de ligne approprié.

Lorsque le récepteur est redimensionné à l'aide de la méthode sizeToFit, le redimensionnement prend en compte la valeur stockée dans cette propriété. Par exemple, si cette propriété est définie sur 3, la méthode sizeToFit redimensionne le récepteur afin qu'il soit suffisamment grand pour afficher trois lignes de texte.

Vous pouvez également vouloir spécifier lineBreakMode sauf si la valeur par défaut UILineBreakModeWordWrap convient à ce que vous voulez.

76
Sam

Utilisez les propriétés UILabel comme ci-dessous:

textLabel.lineBreakMode = NSLineBreakByWordWrapping;  
textLabel.numberOfLines = 0;
5
Sagar Surani

Oui, vous définissez le numberOfLines sur 0 et le .lineBreakMode à UILineBreakModeWordWrap dans le code, ou les équivalents si votre étiquette est définie dans IB.

4
jrturton

Je viens d'utiliser le mode LineBreak pour Truncate Tail et définirNumberOfLines à 0 et cela fonctionne pour moi. l'étiquette est désormais multiligne.

2
Waqas