143

How can I make a multiline UILabel in interface builder for iOS? I tried the UITextView but it didn't quite suit my needs.

How can I add multiline (text) in label?

Krunal
  • 77,632
  • 48
  • 245
  • 261
Samuli Lehtonen
  • 3,840
  • 5
  • 39
  • 49

11 Answers11

190

You can use numberOfLines property which defines maximum number of lines a label can have. By default, it's 1. Setting it to 0 means the label will have unlimited lines.

You can do it in code:

textLabel.numberOfLines = 5 // for example

Or in Interface Builder:

akashivskyy
  • 44,342
  • 16
  • 106
  • 116
125

Hit Control+Enter to add a line in UILabel in Interface Builder/Storyboard.

Cfr
  • 5,092
  • 1
  • 33
  • 50
user1233894
  • 1,582
  • 1
  • 11
  • 10
48

Thanks AppleVijay!

Also to call sizeToFit, like this:

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

The height will be automatically computed.

Bogdan
  • 2,608
  • 2
  • 27
  • 26
12

set width of label as u needed small then use IB to set line breaks to word wrap

or use with code like this

I found a solution.

One just has to add the following code:

textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;
jeet.chanchawat
  • 5,842
  • 5
  • 38
  • 59
8

Set number of lines zero for dynamic text information, it will be useful when your text are varying.

Programatically (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

Using Inetrface Builder

enter image description here

Note: It is not required to set Minimum Font Scale, but nice to have a minimum scale factor to fit text into label frame.

Krunal
  • 77,632
  • 48
  • 245
  • 261
2

Number of lines is visible in IB with Plain UILabels set lines field as 0 . It will create multiple lines as per the provided space to the label.

siddhant
  • 39
  • 2
1

In iOS7 (Xcode5) you shold set the lines of UILabel to 0 for unlimited multiple input in storyboard.
The most important is to set the height of the UILabel can hold the lines of input you are going to set.

Artisan
  • 75
  • 1
  • 8
0
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};
Ramzi Khahil
  • 4,932
  • 4
  • 35
  • 69
Tanvi Jain
  • 917
  • 2
  • 7
  • 19
0

If you set the numberOfLines property equal to 0, the label will automatically adjust to the required number of lines of the given text.

Pablo Marrufo
  • 855
  • 1
  • 8
  • 17
0

I had been struggling with this for a long time. I just wanted my label text to appear on the second line. But whatever I do, it would just overflow the UILabel box. For me, changing the autoresizing in size inspector worked. Simple fix.

May be someone might find it helpful who is looking for something similar.

Harshal Karande
  • 476
  • 4
  • 9
-2

For X-Code 7.2

  1. -- Select UILabel

  2. -- Attributes inspector

  3. -- Text - Select Attributed

After this you can see some more attribute you can add into you label, in which you can also find number of Lines. Which make your label multiline.

X-Code Image for a multiline UILabel

codeCraft
  • 62
  • 5