TableViewCell中自定义XIB的使用

默认的表格样式通常不能满足正常的开发需要

 

解决方法 —— 自定义Cell

1> XIB(团购)

2> 纯代码(微博)

3> StoryBoard

 

XIB的定义步骤

-----------------------------------------------

1> 新建HMTgCell.xib

2> 拽一个需要自定义的控件,摆放其他子控件

3> 新建一个类

* 类名要与XIB的名字保持一致

* 继承自的子类要与XIB中的根节点的类型一致

4> 要连线之前,需要将XIB的根节点类名修改为刚刚新建的类名

5> 连线

6> XIB的属性面板,指定可重用标示符

 

代码创建Cell的步骤

-----------------------------------------------

1> 创建自定义Cell,继承自UITableViewCell

2> 根据需求,确定控件,并定义属性

3> getter方法完成控件的实例化,只创建并添加到contentView,不处理位置

4> 定义一个模型属性,通过setter方法,设置cell的显示

 

-----------------------------------------------

1. cellHeight 可以通过Status计算

解决方法:statusFrame模型,通过setter方法计算行高!

 

目前存在什么问题?

 

所有的单元格控件的计算都是重复的,而且每次表格滚动,设置内容都会重新计算。

 

解决这个问题:

statusFrame模型中,已经包含了status属性。

 

目前控制器中的数组保存的是status模型,将status模型替换为statusFrame模型{status,所有控件的位置},同样具有status模型

 

解决步骤

1. 将原有的status模型替换为statusFrame模型

*** 只是修改视图控制器中的代码,暂时不要动cell

 

*** 重构代码一定要小步来

 

问题:

cell中的控件的位置计算,依然是自己计算的。

解决办法:将cell中的status替换为statusFrame就可以拿到控件位置

 

 

-----------------------------------------------

代理模式:是父控件(视图控制器)监听子控件的事件,当子控件发生某些事情时,通知父控件工作!

 

* footView => controller 去工作,使用代理

* controller => footView 去工作,直接调用footView的方法即可

posted @ 2015-04-10 07:43  liqiantu  阅读(257)  评论(0编辑  收藏  举报