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?
Vous devez attribuer la propriété numberOfLines
. Vous pouvez le faire via le code:
textLabel.numberOfLines = 5; // for example
Ou via Interface Builder:
Frappé Control+Enter ajouter une ligne dans UILabel dans Interface Builder/Storyboard.
Merci AppleVijay!
Également appeler sizeToFit, comme ceci:
label.lineBreakMode = UILineBreakModeWordWrap;
label.numberOfLines = 0;
[label sizeToFit];
La hauteur sera automatiquement calculée.
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
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.
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.
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.
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};
Si vous définissez la propriété numberOfLines sur 0, l’étiquette s’ajustera automatiquement au nombre requis de lignes du texte donné.