web-dev-qa-db-fra.com

label multiligne iOS dans le générateur d'interface

Comment créer une UILabel multiligne dans un générateur d'interface pour iOS? J'ai essayé le UITextView mais cela ne convenait pas à mes besoins.

Comment puis-je ajouter multiligne (texte) dans l'étiquette?

114
Samuli Lehtonen

Vous devez attribuer la propriété numberOfLines. Vous pouvez le faire via le code:

textLabel.numberOfLines = 5; // for example

Ou via Interface Builder: enter image description here

161
akashivskyy

Frappé Control+Enter ajouter une ligne dans UILabel dans Interface Builder/Storyboard.

105
user1233894

Merci AppleVijay!

Également appeler sizeToFit, comme ceci:

label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit];

La hauteur sera automatiquement calculée.

47
Bogdan

définissez la largeur de l’étiquette en fonction des besoins, puis utilisez IB pour définir les sauts de ligne sur Word Wrap

ou utiliser avec un code comme celui-ci

J'ai trouvé une solution.

Il suffit d'ajouter le code suivant:

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

Définissez le nombre de lignes zéro pour les informations de texte dynamique, il sera utile lorsque votre texte varie.

Par programme (Swift 3)

var label = UILabel()
let stringValue = "iOS\nmultiline\nlabel\nin\nInterface\nbuilder"
label.text = stringValue
label.numberOfLines = 0 // Set 0, if number of lines not specified.
label.lineBreakMode = .byTruncatingTail // or .byWrappingWord
label.minimumScaleFactor = 0.8 . // It is not required but Nice to have a minimum scale factor to fit text into label frame

Utilisation d'Inetrface Builder

enter image description here

Remarque: Il n'est pas nécessaire de définir Minimum Font Scale, mais il est agréable d'avoir un facteur d'échelle minimum pour adapter le texte au cadre de l'étiquette.

4
Krunal

Le nombre de lignes est visible dans IB avec les étiquettes Plain UIL. Il créera plusieurs lignes selon l'espace prévu pour l'étiquette.

1
siddhant

Dans iOS7 (Xcode5), vous devez définir les lignes de UILabel sur 0 pour un nombre illimité d'entrées multiples dans le storyboard.
Le plus important est de définir le height of the UILabel qui peut contenir les lignes d’entrée que vous allez définir.

1
Artisan
textLabel.lineBreakMode = UILineBreakModeWordWrap;

textLabel.numberOfLines = 0;

CGSize size =  [[[arrNewsFeed objectAtIndex:row] objectForKey:@"c"]  sizeWithFont:[UIFont systemFontOfSize:14.0]  constrainedToSize:CGSizeMake(188, CGFLOAT_MAX)
                                                                     lineBreakMode:NSLineBreakByTruncatingTail];

textLabel.frame = (CGRect){.Origin = cell.lblNewsDescription.frame.Origin, .size = size};
0
Tanvi Jain

Si vous définissez la propriété numberOfLines sur 0, l’étiquette s’ajustera automatiquement au nombre requis de lignes du texte donné.

0
Pablo Marrufo