动态计算文本(label)的size

// 计算(短)文字的宽度

// 使用字典保存当前文字的字体格式(字体风格,大小)

NSDictionary *nameAttr  = @{NSFontAttributeName : LLGNameFont};

//  使用一个临时的CGSize动态保存当前需要计算的文本的长度和宽度

CGSize nameSize = [self.llgSModel.name sizeWithAttributes:nameAttr];


// 计算(长)正文文字的高度

// 使用字典保存当前文字的字体格式(字体风格,大小)

NSDictionary *textAttr = @{NSFontAttributeName : LLGTextFont};

//  使用一个临时的CGSize设定文本的长度和宽度

CGSize maxNameSize = CGSizeMake(textW, MAXFLOAT);

//  通过boundingRectWithSize动态计算当前文本的高度

CGFloat textH = [self.llgSModel.text boundingRectWithSize:maxNameSize options:NSStringDrawingUsesLineFragmentOrigin attributes:textAttr context:nil].size.height;

这两种方法有什么区别?

第一种是给一段文字较少的文本使用,因为不需要换行操作

第二种是给一段文字较多的文本使用,因为需要进行换行操作.这里面可以设定固定的宽

你可能感兴趣的:(动态计算文本(label)的size)