技术专题tableView

tableView在开发中扮演很重要的角色,我们应该了解table View的各种样式以胜任开发工作。

1.tableview 的组成结构

表头 单元格 节头 单元格 节尾 表尾

对于表头和表尾应用的不多,表头如刷新,

见代码

http://mp.weixin.qq.com/s?__biz=MjM5NTIyNTUyMQ==&mid=210281204&idx=1&sn=1ed54cd04deeb1e8598464ab93d236be&scene=23&srcid=1014zc2a0JfBJXnenWAPmLt9#rd

某个自定义的刷新方法。

表尾通常显示“更多”,也是一个加载数据的方式。

节头和节尾就是视具体情况而定了。

2.我们来看看苹果公司自带的单元格样式UITableViewCellStyle:

 2.1 default只有图标和主标题

 2.2SubTitle 有图标,主标题,副标题(这个可用于目前开发的项目)。

 2.3value1:可以有图标(可选),主标题(左边对齐),副标题(右边对齐,可选)

2.4 value2:主标题副标题区中对齐

3.tableview 的数据源协议与委托协议

委托协议

tableView:didSelectRowAtIndexPath:选择单元格响应事件

还有其他一些的,暂时不介绍了

数据源协议:

tableview:cellforRowAtIndexPath:

返回cell.为单元格提供数据

tableview:numberOfRowsInSection:返回一个节中的行数

还有其他一些用的不多

4.创建表单元格:

如何理解表视图的单元格是需要重用的?

创建表单元格有三种方式:

  4.1 纯代码

  static NSString * CellIdentifier = @"CellIdetifier";

UITableViewCell * cell = [tableview dequeueReusableCellWithIdentifier:CellIdentifier];

//既然是纯代码的,为什么需要用设置identifier,因为cell是需要重用的,也就是说,当创建了一个对象,同时设置了他的标志(reuseIdentifier:)那在下次

调用cell 时,就直接用上面这种方法,可以这样理解吧。这叫可重用

if(cell == nil) {

cell = [[ UITableViewCell alloc] initWithStyle:UItableViewCellStyleDefault reuseIdentifier:CellIdentifier];

}

4.2代码加xib

这种方法需要在xib 中设置标志符,同时指定单元格的style.

那代码部分也与纯代码方式是有区别的:

  static NSString * CellIdentifier = @"CellIdetifier";

UITableViewCell  * cell = [tableview dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPah];

这里是有IndexPath的

4.3自定义Cell

自定义Cell一般也是通过xib 和代码结合的方式创建。

在xib 上,自定义好样式,在标识检查器当中将custom class 目录下的class 改为创建的cell 类。

同样在属性检查器上,需要设置identifier ,以及style.(custom).

在代码部分,除了需要定义cell 类之外,在创建自定义cell时,

  static NSString * CellIdentifier = @"CellIdetifier";

CustomCell    * cell = [tableview dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPah];

注意以上代码与4.2 的区别。

然后就可以在cellForRowAtIndexPath数据源方法上对cell的一些自定义属性进行赋值了。

4.4 自定义Cell 还有另外一种形式,就是通过创建tableview的方式。

 [self.diseaseTableView registerNib:[UINib nibWithNibName:@"FreeTelDepartmentCell" bundle:nil] forCellReuseIdentifier:@"FreeTelDepartmentCell"];//注明这里只是注册而已。

 FreeTelDepartmentCell *cell = [tableView dequeueReusableCellWithIdentifier:@"FreeTelDepartmentCell"];

//这里是通过重用的方式调用cell.

之前转载的一篇博文讲的也是这个。

4.5 对于dequeueReusableCellWithIdentifier:index;和dequeueReusableCellWithIdentifier方法在xcode上运行好像没有差。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值