每个Cell高度不一致的一般做法:

1.自定义一个 Cell,在 initWithStyle:reuseIdentifier: 构造方法中添加所有需要显示的子控件

2.新建一个模型类,比如 CellFrameModel,作用是:描述一个自定义 Cell 内部所有子控件的 frame 属性
* 提供一系列 CGRect 类型的属性给自定义 Cell 访问
* 提供一个接口(属性)来接收模型数据(在控制器中调用属性的 setter 方法,传过去一个 Model)
* 在接收模型数据的同时,计算所有子控件的 frame 和 cell 的高度

3.回到控制器(代理和数据源)
1> 在tableView: heightForRowAtIndexPath: 方法中利用 CellFrameModel 返回 cell 的高度
2> 在tableView:cellForRowAtIndexPath:方法中
* 新建自定义cell
* 给 Cell 传递对应的 cellFrameModel(自定义 cell 的属性) 对象

4. 自定义Cell
1> 提供接口接收 cellFrameModel 对象
2> 在接收 cellFrameModel 对象的同时,设置所有子控件的frame,设置所有子控件的数据

posted @ 2015-06-26 16:50  jiangqi  阅读(230)  评论(0编辑  收藏  举报