Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Indent second line of UILabel

So I have a UILabel that may or may not go to a second line, depending if it is on iPhone or iPad. What I would like to accomplish is to have it indent on the second line to line up correctly, if needed.

On iPad it will almost never need the second line break, and depending on which iPhone it is running on, it may or may not. So, in essence, I need a way to dynamically indent the second line, only when there is a second line.

like image 949
Bill L Avatar asked Jun 22 '15 21:06

Bill L


1 Answers

Use an NSAttributedString for your label, and set the headIndent of its paragraph style:

NSMutableParagraphStyle *style = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
style.headIndent = 14;
NSDictionary *attributes = @{
    NSParagraphStyleAttributeName: style
};
NSAttributedString *richText = [[NSAttributedString alloc] initWithString:@"So this UILabel walks into a bar…" attributes:attributes];
self.narrowLabel.attributedText = richText;
self.wideLabel.attributedText = richText;

Result:

example result

like image 86
rob mayoff Avatar answered Nov 16 '22 19:11

rob mayoff