frame模型
#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;
}
frame模型的更多相关文章
- [iOS微博项目 - 4.1] - cell的frame模型
github: https://github.com/hellovoidworld/HVWWeibo A.cell的frame模型设计 1.需求 每个cell都有一个frame实例引用 frame模型 ...
- IOS第九天(1:QQ聊天界面frame模型)
/// 控制层 #import "HMViewController.h" #import "HMMessageModel.h" #import "H ...
- iOS-重构微博cell模型
一.Frame模型: -------------------WeiboFrame.h-------------------------------------------------- ------- ...
- 通过代码自定义cell(cell的高度不一致,比如微博)
1.新建一个继承自UITableViewCell的类 2.重写initWithStyle:reuseIdentifier:方法 (先要调用父控件的nitWithStyle:reuseIdentifie ...
- ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局
本文转自 :http://www.cnblogs.com/wendingding/p/3761730.html ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布 ...
- iOS开发小技巧--纯代码自定义cell
纯代码自定义cell 自定义cell的步骤(每个cell的高度不一样,每个cell里面显示的内容也不一样) 1.新建一个继承自UITableViewCell的子类 2.在initWithStyle:方 ...
- 自定义cell的一些知识
1.要往cell里面添加一个自定义的子控件,都是添加到cell的contentView,不是添加到cell里面. 2.通过xib自定义cell * 添加tableView * 加载团购数据 * 新建x ...
- iOS开发——UI进阶篇(一)UITableView,索引条,汽车数据展示案例
一.什么是UITableView 在iOS中,要实现展示列表数据,最常用的做法就是使用UITableViewUITableView继承自UIScrollView,因此支持垂直滚动,而且性能极佳 UIT ...
- iOS开发UI篇—UITableview控件使用小结
iOS开发UI篇—UITableview控件使用小结 一.UITableview的使用步骤 UITableview的使用就只有简单的三个步骤: 1.告诉一共有多少组数据 方法:- (NSInteger ...
随机推荐
- id类型
id类型 在Objective-C 中,id 类型是一个独特的数据类型.在概念上,类似Java 的Object 类,可以转换为任何数据类型.换句话说,id 类型的变量可以存放任何数据类型的对象.在内部 ...
- 安卓天天练练(五)CompoundButton
ToggleButton 让我想起了从前jQuery还没有取消toggle方法时是怎么偷懒的.. 注意: 如果LinearLayout,与RelativeLayout不同,必须有orientation ...
- js页面传参数时,参数值包含特殊字符的处理
js页面传参数时,参数值包含特殊字符应该怎么处理,解决方法就是利用js的escape函数,这个函数在解决中文乱码等方面应用的比较广泛.推荐使用. 工作中遇到的小问题,一个页面中通过window.sho ...
- java中如何实现全局变量
有时一个项目中会多处涉及到路径,当你把这个项目移植到别的电脑上时就要一一修改这些路径,过程十分繁琐,所以一个全局变量在这时是必不可少的. 遗憾的是java等oo语言并没有全局变量,这怎么办呢?下面介绍 ...
- win7中的Uac与开机自动启动(好几种办法,特别是用不带UAC的程序启动UAC程序是一个简单的好办法,写驱动自启动更是了不得)
在另一篇文章中已经介绍了给Exe加上Uac的方法,在使用的过程中我们会发现,如果把带Uac的Exe写入注册表的Run中,是无法实现开机自动启动的,原因就是带Uac的exe需要申请管理员权限,以便运行执 ...
- css li 列表
ul,li{list-style-type:none;padding:0;margin:0}
- ORACLE数据缓冲区DB cache
DB CACHE是以数据块为单位组织的缓冲区,数据库刚刚启动的时候,DB CACHE中几乎没有用户数据的缓冲,当会话访问数据库中的表或索引时,首先会检查DB CACHE中是否存在该数据,如果不存在,就 ...
- bzoj1820
水dp,状态表示三个司机当前在哪所用最小耗油,因为有一个一定在当前点所以可以压掉一维 ..,..] of longint; a:..] of longint; x,y,i,j,k,n, ...
- PuTTY 'modmul()' 函数缓冲区下溢漏洞(CVE-2013-4206)
漏洞版本: PuTTY 0.52 - 0.63 漏洞描述: BUGTRAQ ID: 61645 CVE(CAN) ID: CVE-2013-4206 PuTTY是Windows和Unix平台上的PuT ...
- Linux的IP设置参考
位置:etc/network/interfaces 内容: 第一段是网口1自动从DHCP处获得IP 第二段是网口2静态分配IP 如果是IPv6,请把 iface eth0 inet dhcp(stat ...