1、效果演示
2、设计说明
2.0 设计草图
2.1 模型说明
2.1.1 SAWeibo类:该类主要功能是将基本数据抽象成数据模型,将数据处理思想转换成面向对象的理念;
2.1.2 SAWeiboFrame类:该类是新增加的一个类,将各视图尺寸位置的设置单独抽象出来创建一个视图框架模型,该模型中包含了数据模型,给每条微博提供数据源及各子视图子控件提供位置与尺寸服务;
2.1.3 SAWeiboCell类:该类主要功能是创建TableView中每个Cell的内容,包含数据与视图,因此将SAWeiboFrame添加给该类的一个成员变量,调用SAWeibo类与SAWeiboFrame类完成微博展示功能;
2.2 基本步骤
2.2.1 删除原有的控制器,新建一个控制器SAWeiboController直接继承自UITableViewController,删除storyboard中的view,新建一个UITableView并将UITableView的类设置为新创建的控制器
2.2.2 新建一个类SAWeiboCell继承自UITabeViewCell,该类主要功能在2.1 模型说明中已描述;
2.2.3 在控制器SAWeiboController中实现必须实现的几个方法,如numberOfRowsInSection、cellForRowAtIndexPath、heightForRowAtIndexPath等方法
2.2.4 在实现cellForRowAtIndexPath方法前需要创建SAWeiboCell类,并在该类中实现Cell创建的initWithStyle:reuseIdentifier:方法,添加cell内部需要的子控件(此时只管添加控件暂不关心控件的尺寸与位置);
2.2.5 创建数据模型SAWeibo类,增加相应的数据属性;
2.2.6 创建视图框架模型SAWeiboFrame类,增加相应的数据属性并将数据模型设置成该模型的属性;
2.2.7 重写setWeibo方法,将数据模型赋值的同时将所有子控件的尺寸与位置进行计算确定、将在最后计算出每个Cell的高度
2.2.8 将计算得出来的值分别写到各属性中,回到控制器完善控制器未完成的配置;
2.2.9 将数据模型赋值,将视图框架模型赋值,并将相关属性结果回写到numberOfRowsInSection、cellForRowAtIndexPath、heightForRowAtIndexPath方法中
3、源代码下载
链接: http://pan.baidu.com/s/1gd431WB 密码: 5a6d