在视图加载的过程中,是先计算出frame,再根据frame加载视图的,所以在设计计算高度的方法的时候,设计成加号方法;

//首先给外界提供计算cell高度的方法
+ (CGFloat)heightForRowWithDic:(NSDictionary *)dic {
//cell高度 = nameLabel高度 + contentLabel高度 + 间距;
return [self heightForText:dic[@"content"]] + + kHeight_NameLabel;
} //动态计算文本高度
+ (CGFloat)heightForText:(NSString *)text {
//1.创建计算文本高度的参考量
//1.1 最大允许绘制的文本范围(尽量大点);
CGSize maxSize = CGSizeMake(kWidth_ContentLabel, );
//1.2 配置计算时的行截取方式,要和contentLabel对应
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
style.lineBreakMode = NSLineBreakByCharWrapping;
//1.3 配置计算时的字体大小
UIFont *font = [UIFont systemFontOfSize:];
//1.4 配置属性字典
NSDictionary *dic = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:style};
//计算
//如果想保留多个枚举值,泽枚举值中间加按位或|即可,并不是所有的枚举值都可以按位或,枚举值的赋值中有左移运算符时才可以.
CGFloat height = [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:dic context:nil].size.height; return height; }
在计算文本高度的时候,要给contentLabel设置一些属性

- (UILabel *)contentLabel {
if (!_contentLabel) {
self.contentLabel = [[UILabel alloc] initWithFrame:CGRectMake(kMarginLeft_ContentLabel, kMarginTop_ContentLabel, kWidth_ContentLabel, kHeight_ContentLabel)]; //对contentLabel进行一些设置
_contentLabel.font = [UIFont systemFontOfSize:];
//设置Label可以多行显示,0表示没有限制行数
_contentLabel.numberOfLines = ;
//设置断行模式
_contentLabel.lineBreakMode = NSLineBreakByCharWrapping;//以单个字符进行截取.
}
return [[_contentLabel retain] autorelease];
}

 

最新文章

  1. MySQL5.6:基于GTID的主从复制
  2. MFC 获取图像的大小
  3. curl命令学习笔记
  4. CF 370B Berland Bingo
  5. 最好的文本框样式 最漂亮的文本框样式 textbox css样式
  6. php安装memcache注意事项
  7. Python 进阶(五)定制类
  8. Hibernate3.6中文手册
  9. URAL1204. Idempotents(扩展欧几里得)
  10. 在SharePoint 2010中创建网站的权限级别
  11. android 权限总结
  12. 每天进步一点点——Linux
  13. SICP 阅读笔记(二)
  14. Registry Workshop(注册表编辑器) V4.6.3 官方中文版
  15. 对于反射中的invoke()方法的理解
  16. EF 中 Code First 的数据迁移以及创建视图
  17. 为什么用CDN给你网站加速?
  18. 学习TensorFlow,多层卷积神经网络
  19. Django基础三(form和template)
  20. IIS6下使用多域名和通配符证书

热门文章

  1. Practice: Process logs with Apache Hadoop
  2. Powershell错误处理,try catch finally
  3. C# 注销掉事件,解决多播委托链表的问题
  4. Oracle实例与Oracle数据库
  5. 【HDOJ】1493 QQpet exploratory park
  6. Java中快速排序的实现
  7. URAL 2034 : Caravans
  8. HDU 2187 A sequence of numbers
  9. 简单javaEE思维导图
  10. Storm drpc学习