您的位置:首页 > 编程语言

纯代码自定义cell的过程

2015-09-18 20:52 169 查看
两个模型类:

数据模型类 --- cell中显示的数据
frame模型类 ---
数据模型以及cell中子控件的frame及cell的高度

一个cell子类

利用MVC
在cell子类中做: (V)

三件事情分开来做:创建子控件、数据的显示、子控件frame的设定

1.
提供一个类方法快速获取cell独享

从重用队列中取出对象

如果失败,创建 alloc + initWithStyle...
2.
重写initWithStyle...
方法

创建所有的子控件,以及子控件的一次性属性配置

/************去实现frame模型*****************/

3.
添加frame模型属性,并重写setter方法显示数据
4.
重写layoutSubviews,为子控件的frame赋值

Frame模型: (M)

将数据模型封装,并且能够通过数据模型计算出对应子控件的frame

1.
设定数据模型属性

2.
添加cell中所有子控件对应的frame属性
3.
添加cell高度的属性

4.
实现数据模型属性的setter方法的重载版本

计算出所有的frame及height

控制器 (C)

1.添加模型数组,实现懒加载

什么模型?frame模型
2.实现tableView的数据源方法

组数:1

组中的行数:模型数组的长度
cell:创建一个cell,并设置frame模型
cell的高度:返回frame模型的cellHeight

常用方法

1.
根据字符串对象,计算占用的size
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context

size:设定的宽和高的最大限制
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13]}

2.
拉伸图片
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode
capInsets:拉伸范围 size/2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: