2017年6月

iOS 根据文本的高度获取文本的行数

今天APP改版,需要在cell里动态设置标题的高度,并且最大只能显示两行,仔细想了下这个问题。其实动态设置一个label的高度,主要还是能在label进行布局前,能够拿到label内容的行数。如果label内容是一行或者两行则直接显示,如果是两行以上则需要提前设置label的高度。

获取label内容的高度:

  1. 获取label内容的高度
  2. 获取label内容的行数
  3. 获取label内容的实际高度
//label 内容的高度
CGRect titleRect = [titleAttr boundingRectWithSize:CGSizeMake(titleLableMarginWidth, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin context:nil];
//label 内容的行数
NSInteger lineCount = titleRect.size.height / titleLabelFont.lineHeight;
//获取label的实际高度
CGFloat titleLabelHeight = MIN(2, lineCount) * titleLabelFont.lineHeight;

仅此作为实际开发中的笔记,以备周末总结查看。