方式一
//被static修饰的局部变量:只会初始化一次,在整个程序运行过程中,只有一份内存
static NSString *ID = @"cell";
/**
* 什么时候调用:每当有一个cell进入视野范围内就会调用
*/
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//1. 设置重用标示
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
//2.如果cell为nil(缓存池找不到对应的cell)
if(cell==nil){
cell = [[UITableViewCell alloc]initWithStyle:UITableVIewCellStyleDefault reuseIdentifier:ID];
}
//3.显示数据
cell.textLabel.text = [NSString stringWithFormat:@"testDate - %zd",indexPath.row];
return cell;
}
方式二
//定义重用标示符
NSString *ID = @"cell";
//在这个方法中注册cell
-(void)viewDidLoad
{
[super viewDidLoad];
//注册某个标识对应的cell类型
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:ID];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//1.去缓存池中查找cell
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
//2.显示数据
cell.textLabel.text = [NSString stringWithFormat:@"testdata - %zd", indexPath.row];
return cell;
}
方式三
- 在storyboard中设置UITableView的Dynamic Prototypes Cell
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// 1. 重用标识,被static修饰的局部变量:只会初始化一次,在整个程序运行过程中,只有一份内存
static NSString *ID = @"cell";
// 2. 先根据cell的标识去缓存池中查找可循环利用的cell
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
// 3. 覆盖数据
cell.textLabel.text = [NSString stringWithFormat:@"cell - %zd", indexPath.row];
return cell;
}