ios – 如何计算具有固定宽度的UILabel的行数?

参见英文答案 > How to find UILabel’s number of Lines6
如何计算具有固定宽度和给定文本的UILabel的行数?

解决方法

此代码假定标签具有所需的文本,并且其框架已经设置为所需的宽度.
- (int)lineCountForLabel:(UILabel *)label {
    CGSize constrain = CGSizeMake(label.bounds.size.width,FLT_MAX);
    CGSize size = [label.text sizeWithFont:label.font constrainedToSize:constrain lineBreakMode:UILineBreakModeWordWrap];

    return ceil(size.height / label.font.lineHeight);
}

更新:

如果您想要的是根据文本和当前宽度确定标签所需的高度,请将其更改为:

- (CGSize)sizeForLabel:(UILabel *)label {
    CGSize constrain = CGSizeMake(label.bounds.size.width,FLT_MAX);
    CGSize size = [label.text sizeWithFont:label.font constrainedToSize:constrain lineBreakMode:UILineBreakModeWordWrap];

    return size;
}

返回的大小是包含标签的适当宽度和高度.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...