UITableView的使用

TableView(表示图)

在iOS中,表示图是使用频率相当高的一个控件, 我们会常用到表示图来进行一些布局.

第一种情况:我们在视图控制器中创建表示图

在视图控制器中创建表示图我们必须要实现两个方法: 

一: 表示图的数据源.(需要遵守UITableViewDataSource协议)

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section//表示图数据源协议必须要实现的协议方法由代理对象为表示图提供行数 (行数一般与表示图要展示的数据的个数一致)

二: 表示图的单元格定义.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

UITableView *aTableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];//创建一个TableView,TableView有两种形式, 一种是分组(grouped), 还有一种是不分组的(Plain).

aTableView.separatorColor = [UIColor grayColor];//调用separatorColor属性可以设置分割线的颜色.

aTableView.rowHeight = 60;//调用rowHeight属性可以设置表示图单元格的统一行高.

aTableView.dataSource = self;//设置表示图的数据源代理对象

我们生成多少表格, 就有多少表格, 但是如果我们需要的表格数量大得时候呢? 难道我们要生成很多表格么? 那样会占用到很多的系统资源, 然而这并不是我们想要的, 我们做的是iOS的开发,  所以要尽量减少资源的占用. 我们使用重用机制来做.

什么是重用机制? 

重用机制其实也就是重复的利用. 比如商场里的电梯,  车站候车厅的座位. 可以反复利用当前空闲的位置.

在定义单元格的方法中我们制作重用单元格

五步:

一:定义静态重用标示符

//1.定义静态重用标示符

static NSString *identifier = @"CELL";

//2.根据重用标示符从表示图的重用队列中获取可被重用的单元格

    UITableViewCell *aCell = [tableView dequeueReusableCellWithIdentifier:identifier];

//3.如果重用队列里并无可被重用单元格, 则创建单元格对象 (常见于表示图刚开始布局单元格时, 这时并没有产生重用)

if (!aCell) {

        aCell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier] autorelease];

    }

//4.为单元格提供要显示的数据

aCell.textLabel.text = self.datasource[indexPath.row];//重新赋值

//5.返回单元格

return aCell;

在有空闲的可重用单元格时, 并不会销毁单元格里的数据, 而是在有需要的数据使用时, 直接给重用单元格赋值.
我们也可以把前三部进行简化合成:

UITableViewCell *aCell = [tableView dequeueReusableCellWithIdentifier:@"CELL" forIndexPath:indexPath];

如果使用这种格式的话需要在ViewDidLoad里为重用标示符指定单元格的类型

[aTableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"CELL"];










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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值