设置uilabel的最大行数

cho*_*ise 21 iphone cocoa-touch objective-c

我需要与uilabel做一些特殊的调整.

我希望它有1到3行,无论它有什么内容.目前我正在做这样的事情

label.font = [UIFont fontWithName:@"HelveticaNeue-Bold" size:14.0f];
label.backgroundColor = [UIColor clearColor];
label.numberOfLines = 0;
label.lineBreakMode = UILineBreakModeWordWrap;

label.frame = CGRectMake(114.0f, 88.0f, 187.0f, 0.0f);
[label sizeToFit];
Run Code Online (Sandbox Code Playgroud)

如果文字不太长,那么效果很好.如果字符串类似于@"Hello World"UILabel只有14点高,如果它有点长,它会扩展.

现在我希望文本应该添加它的默认...三点,如果文本对于三行太长,但设置在顶部它扩展到第四行.

有人知道如何实现这一目标吗?

如果不清楚,请发表评论.

编辑:
查看此示例应用程序以查看我的问题(希望如此).

deb*_*k63 19

label.numberOfLines = 3;
CGSize size = [label.text sizeWithFont:label.font
                     constrainedToSize:CGSizeMake(SOME_WIDTH,
                                                  3 * label.font.lineHeight)
                         lineBreakMode:UILineBreakModeWordWrap];
label.bounds = CGRectMake(0, 0,
                          size.width,
                          size.height);
Run Code Online (Sandbox Code Playgroud)


Gil*_*Gil 18

刚设置label.numberOfLines = 3;.

它有点贴错标签,因为它实际上保持显示的最大行数.

  • 如果 numberOfLines 不为零,则 sizeToFit 将不起作用,我需要 sizeToFit 行为,因为如果不需要,它不应该总是三行高。 (2认同)