在用text
和font
对UILabel
进行初始化后,如何找到UILabel
的actual行数?我已经将它的numberOfLines
属性设置为0
,因此它将扩展到需要多少行.但是,我怎么才能知道我把它设置到text
之后,它最后得到了多少行呢?
我找到了类似的问题,但似乎没有一个能提供简明的答案,在我看来,要得到这个问题一定很容易,而不需要花费任何时间go 折腾boundingRectWithSize
或sizeWithFont
,…….
在用text
和font
对UILabel
进行初始化后,如何找到UILabel
的actual行数?我已经将它的numberOfLines
属性设置为0
,因此它将扩展到需要多少行.但是,我怎么才能知道我把它设置到text
之后,它最后得到了多少行呢?
我找到了类似的问题,但似乎没有一个能提供简明的答案,在我看来,要得到这个问题一定很容易,而不需要花费任何时间go 折腾boundingRectWithSize
或sizeWithFont
,…….
First Option :
首先根据字体计算文本高度:
NSInteger lineCount = 0;
CGSize labelSize = (CGSize){yourLabel.frame.size.width, MAXFLOAT};
CGRect requiredSize = [self boundingRectWithSize:labelSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName: yourLabel.font} context:nil];
现在计算行数:
int charSize = lroundf(yourLabel.font.lineHeight);
int rHeight = lroundf(requiredSize.height);
lineCount = rHeight/charSize;
NSLog(@"No of lines: %i",lineCount);
Second Option :个
NSInteger lineCount = 0;
CGSize textSize = CGSizeMake(yourLabel.frame.size.width, MAXFLOAT);
int rHeight = lroundf([yourLabel sizeThatFits:textSize].height);
int charSize = lroundf(yourLabel.font.lineHeight);
lineCount = rHeight/charSize;
NSLog(@"No of lines: %i",lineCount);