自定义tableviewcell没有调用是怎么回事
展开全部
一、实现步骤
1、新建一个XIB文件:描述cell——tableCell.xib
2、新建UITableViewCell的子类,也就是cell文件:封装XIB内部的所有东西——TestCell.m \Testcell.h
2.1 在cell文件中拥有XIB中的所有子控件 (包括生命属性,进行连线)
2.2 给cell增加模型属性,即通过重写set方法,根据模型属性设置cell内部子控件的属性 :
(这一步是从控制器解放抽取出来放在cell中)
2.3 提供一个类方法testCell,使得返回从XIB创建好的从 cell对象(也就是mainBundle):
(这一步是从控制器解放抽取出来放在cell中)
2.4 设置一个重用标识,Identifier
(这一步是从控制器解放抽取出来放在cell中)
2.5 设置cell的高度
(这一步是从控制器解放抽取出来放在cell中)
3、修改XIB中cell的类名即Class:使得XIB和cell相关联 ——TestCell
4、新建一个模型,即数据模型,使得封装数据 ——TestModel.m\TestModel.h
5、控制器取数
5.0 设置每一个section 有多少行:numberOfRowsInsection
5.1 使用重用标示取缓存池取得cell
5.2 如果缓存池没有cell,则创建一个cell ,这个就对应上面得TestCell
5.3 传递模型给cell (这里就需要在 cell中 @class TestModel; ,也就是对应上面得2.2set方法)
二、注意点:
1、缓存为空的时候,通过nsBundle,mainBundle获得数组(两种方法)
1 //方法1
2 NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@"tableCell" owner:nil options:nil];
3 cell = objects[0];
4
5 //或者:方法2
6 UINib *nib = [UINib nibWithNibName:@"tableCell" bundle:nil];//nil则默认为mainBundle
7 NSArray *array = [nib instantiateWithOwner:nil options:nil];
8 cell = array[0];
2、cell的高度,
技巧1:代理方法
技巧2:在viewDidLoad中 self.tableView.rowheight=80(适用于每行cell的高度相同)
3、循环利用缓存中的cell,必须 在Xib的identifier中设置和代码中一样的标识(XIB适用)
4、构造模型 构造方法 :自定义构造方法:必须调用父类的构造方法
1、新建一个XIB文件:描述cell——tableCell.xib
2、新建UITableViewCell的子类,也就是cell文件:封装XIB内部的所有东西——TestCell.m \Testcell.h
2.1 在cell文件中拥有XIB中的所有子控件 (包括生命属性,进行连线)
2.2 给cell增加模型属性,即通过重写set方法,根据模型属性设置cell内部子控件的属性 :
(这一步是从控制器解放抽取出来放在cell中)
2.3 提供一个类方法testCell,使得返回从XIB创建好的从 cell对象(也就是mainBundle):
(这一步是从控制器解放抽取出来放在cell中)
2.4 设置一个重用标识,Identifier
(这一步是从控制器解放抽取出来放在cell中)
2.5 设置cell的高度
(这一步是从控制器解放抽取出来放在cell中)
3、修改XIB中cell的类名即Class:使得XIB和cell相关联 ——TestCell
4、新建一个模型,即数据模型,使得封装数据 ——TestModel.m\TestModel.h
5、控制器取数
5.0 设置每一个section 有多少行:numberOfRowsInsection
5.1 使用重用标示取缓存池取得cell
5.2 如果缓存池没有cell,则创建一个cell ,这个就对应上面得TestCell
5.3 传递模型给cell (这里就需要在 cell中 @class TestModel; ,也就是对应上面得2.2set方法)
二、注意点:
1、缓存为空的时候,通过nsBundle,mainBundle获得数组(两种方法)
1 //方法1
2 NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@"tableCell" owner:nil options:nil];
3 cell = objects[0];
4
5 //或者:方法2
6 UINib *nib = [UINib nibWithNibName:@"tableCell" bundle:nil];//nil则默认为mainBundle
7 NSArray *array = [nib instantiateWithOwner:nil options:nil];
8 cell = array[0];
2、cell的高度,
技巧1:代理方法
技巧2:在viewDidLoad中 self.tableView.rowheight=80(适用于每行cell的高度相同)
3、循环利用缓存中的cell,必须 在Xib的identifier中设置和代码中一样的标识(XIB适用)
4、构造模型 构造方法 :自定义构造方法:必须调用父类的构造方法
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询