397 votes

Plusieurs lignes de texte dans UILabel

Est-il un moyen d'avoir plusieurs lignes de texte en UILabel comme dans l' UITextView ou dois-je utiliser la seconde à la place?

Merci.

737voto

Ilya Suzdalnitski Points 13896

J'ai trouvé une solution.

Il suffit d'ajouter le code suivant:

textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;

Restauré réponse (pour la référence et de développeurs prêts à soutenir iOS ci-dessous 6.0):

textLabel.lineBreakMode = UILineBreakModeWordWrap;
textLabel.numberOfLines = 0;

Sur le côté: à la fois les valeurs de l'enum rendement à l' 0 de toute façon.

124voto

Dans IB, définissez le nombre de lignes à 0 (permet un nombre illimité de lignes)

Lors de la saisie dans le champ de texte à l'aide de l'IB, utilisez la touche "alt-retour" pour insérer un retour à la ligne suivante (ou vous pouvez copier le texte déjà séparés par des lignes).

50voto

La meilleure solution que j'ai trouvé (pour un autre problème frustrant que doivent avoir été réglés dans le cadre) est similaire à vaychick.

Juste définir le nombre de lignes à 0 dans les deux IB ou code

myLabel.numberOfLines = 0;

Cela permet d'afficher les lignes nécessaires mais repositionner l'étiquette de sorte que son centrée horizontalement (de sorte qu'un 1 ligne et 3 de la ligne étiquette sont alignés dans leur position horizontale). Pour corriger cela d'ajouter:

CGRect currentFrame = myLabel.frame;
CGSize max = CGSizeMake(myLabel.frame.size.width, 500);
CGSize expected = [myString sizeWithFont:myLabel.font constrainedToSize:max lineBreakMode:myLabel.lineBreakMode]; 
currentFrame.size.height = expected.height;
myLabel.frame = currentFrame;

20voto

Moorthy The Boss Points 1008
myUILabel.numberOfLines = 0;
myUILabel.text = @"your long string here";
[myUILabel sizeToFit];

15voto

Si vous devez utiliser le:

myLabel.numberOfLines = 0;

de la propriété vous pouvez également utiliser un saut de ligne, ("\n"), dans le code, pour forcer une nouvelle ligne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: