iOS开发中的tableviewcell的重用机制如何理解?如何使用?
3个回答
展开全部
重用机制 简单的说 意思 一行一行 的cell 都是在复用的, 滑动 tableview 的时候,刚离开视图的 cell 会被放到复用池 中,等下一个 cell需要 显示时,会先看复用池中有没有 cell 如果有的时候 ,就从复用池中拿出来cell ,没有的话就重新创建cell
大概就是这几句代码
static NSString *cellName = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellName];
if(cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellName] autorelease];
}
下面是使用。。。people 是另外就个类里的对象,就是一个 数组 里面 取东西, 很好理解的。。。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellName = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellName];
if(cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellName] autorelease];
}
cell.textLabel.text = ((People *)[[_dataArray objectAtIndex:indexPath.section] objectAtIndex:indexPath.row]).peopleName;
cell.detailTextLabel.text = [NSString stringWithFormat:@"%d",((People *)[[_dataArray objectAtIndex:indexPath.section] objectAtIndex:indexPath.row]).peopleAge];
return cell;
}
大概就是这几句代码
static NSString *cellName = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellName];
if(cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellName] autorelease];
}
下面是使用。。。people 是另外就个类里的对象,就是一个 数组 里面 取东西, 很好理解的。。。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellName = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellName];
if(cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellName] autorelease];
}
cell.textLabel.text = ((People *)[[_dataArray objectAtIndex:indexPath.section] objectAtIndex:indexPath.row]).peopleName;
cell.detailTextLabel.text = [NSString stringWithFormat:@"%d",((People *)[[_dataArray objectAtIndex:indexPath.section] objectAtIndex:indexPath.row]).peopleAge];
return cell;
}
2014-03-14
展开全部
你可以理解为古代的水车(圆的那种),屏幕可以显示出来的区域就是水车的右半部分。不需要重复创建新的,而是重用已经从页面消失的那部分
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询