#import "CZWeiboFrame.h"

#import "CZWeibo.h"

@implementation CZWeiboFrame

#define KPadding 10

#define KIconImageViewWH 30

#define KVipImageViewWH 15

#define KPicImageViewWH 70

-(void)setWeibo:(CZWeibo *)weibo

{

_weibo = weibo;

//1.用户头像的frame;

self.iconImageViewFrame = CGRectMake(KPadding, KPadding, KIconImageViewWH, KIconImageViewWH);

//2.设置用户名字的frame

//2.1 获取字符串信息

NSString *userNameStr = weibo.name;

//2.2根据字符串内容计算宽高

CGRect userNameBouns = [userNameStr boundingRectWithSize:CGSizeMake(MAXFLOAT, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14]} context:nil];

//设置用户名字的frame

self.userNameLabelFrame = CGRectMake(CGRectGetMaxX(self.iconImageViewFrame)+KPadding, CGRectGetMidY(self.iconImageViewFrame), userNameBouns.size.width, userNameBouns.size.height);

/**

*  vip图标的frame

*/

self.vipImageViewFrame = CGRectMake(CGRectGetMaxX(self.userNameLabelFrame)+KPadding, CGRectGetMidY(self.iconImageViewFrame), KVipImageViewWH, KVipImageViewWH);

//4.描述信息的frame

//根据文字内容计算显示的宽高

NSString *messageStr = weibo.text;

UIScreen *screen = [UIScreen mainScreen];

CGFloat sizeW = screen.bounds.size.width-2*KPadding;

CGRect messageBouns = [messageStr boundingRectWithSize:CGSizeMake(sizeW, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14]} context:nil];

self.messageLabelFrame = CGRectMake(KPadding, CGRectGetMaxY(self.iconImageViewFrame)+2*KPadding, messageBouns.size.width, messageBouns.size.height);

/**

*  内部图片的frame'

*/

if(weibo.picture.length>0)

{

self.pictureImageViewFrame = CGRectMake(KPadding, CGRectGetMaxY(self.messageLabelFrame)+2*KPadding, KPicImageViewWH, KPicImageViewWH);

}

/**

*  获取行高

*/

CGFloat messageLabelMaxY = CGRectGetMaxY(self.messageLabelFrame)+KPadding;

CGFloat picImageViewMaxY = CGRectGetMaxY(self.pictureImageViewFrame)+KPadding;

//判断文字和图片的

self.rowHight = messageLabelMaxY>picImageViewMaxY?messageLabelMaxY:picImageViewMaxY;

}

最新文章

  1. C#中Abstract和Virtual的区别
  2. SVN服务器搭建
  3. CoreOS Linux引入了Kubernetes kubelet
  4. 走进异步编程的世界 - 开始接触 async/await
  5. 【转】Ubuntu防火墙设置
  6. 转: 浅谈C/C++中的指针和数组(二)
  7. [转载]LINQ 中的 select
  8. vmware安装 ios10.8 过程
  9. 从app里跳到appstore评论页面的实现
  10. openstack私有云布署实践【11.3 计算nova - compute节点-nova用户免密登录(用于云主机冷迁移+扩展云主机大小)】
  11. PHP 中使用socket
  12. 前端的UI设计与交互之布局篇
  13. php代码开启缓冲的使用方法
  14. C++相关:部分标准库特殊设施
  15. Spring中的AOP 专题
  16. C语言基础四(敲打键盘、寻找资料,循环语句)请一个个字读,助于您的学会机率
  17. Eclipse 护眼背景色设置
  18. 【Luogu4630】【APIO2018】 Duathlon 铁人两项 (圆方树)
  19. Android应用一般上架流程
  20. Excel中的基本概念

热门文章

  1. Xcode7之后常见问题整理-b
  2. iOS:等待控件
  3. Python/Keras如何将给定的数据集打乱
  4. 解决maven打jar包报错 source 1.3 中不支持
  5. I/O CPU
  6. django作models的UPDATE时,注意有过滤外键的情况
  7. JSP页面间传递参数的5种方法
  8. C语言头文件的使用与写法
  9. leetcode面试准备:Count Complete Tree Nodes
  10. 串口传输文件 lrzsz