dequeueReusableCellWithIdentifier
来源:互联网 发布:企业域名注册方法 编辑:程序博客网 时间:2024/04/25 09:03
UITableView中的dequeueReusableCellWithIdentifier的方法
在使用UITableView控件的时候,datasource的代理方法经常会使用到下面的方法来加载UITableView的数据显示
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CustomCellIdentifier = @"CustomCellIdentifier";
DiscountProductCell * cell= (DiscountProductCell*)[tableView dequeueReusableCellWithIdentifier:CustomCellIdentifier];
if (cell == nil) {
NSArray * nib = [[NSBundle mainBundle] loadNibNamed:@"DiscountProductCell" owner:self options:nil] ;
cell = [nib objectAtIndex:0];
}
cell.item = mPushItem;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
UIImageView *backgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"list"]] autorelease];
cell.backgroundView = backgroundView;
UIImageView *accessoryView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ad1"]] autorelease];
[accessoryView setFrame:CGRectMake(0.0f, 0.0f, CATEGORY_CELL_AC_WIDTH, CATEGORY_CELL_AC_HEIGHT)];
cell.accessoryView = accessoryView;
return cell;
}
代码中 DiscountProductCell * cell= (DiscountProductCell*)[tableView dequeueReusableCellWithIdentifier:CustomCellIdentifier];是每个
cellForRowAtIndexPath方法都必须用到的。其中dequeueReusableCellWithIdentifier的意义是什么呢?
tableView实现是这样的,它并不创建所有行,比如你的表格数据有100行,但是屏幕上的空间只够显示10行,那么tableView只会创建10个左右的cell,当你滚动时,有些行会被遮住,这些被遮住的行就会被回收放入它的回收空间,而将要出现的行会首先在回收空间查找是否有空闲的cell,如果找到就使用,这样避免了创建cell带来的开销,节省空间和时间。这时的cell里的内容是旧的,你必需更新它的内容为将要出现的行的内容。
- dequeueReusableCellWithIdentifier
- dequeueReusableCellWithIdentifier
- dequeueReusableCellWithIdentifier
- dequeueReusableCellWithIdentifier
- dequeueReusableCellWithIdentifier vs dequeueReusableCellWithIdentifier : forIndexPath
- dequeueReusableCellWithIdentifier:CellIdentifier
- UITableView dequeueReusableCellWithIdentifier
- 区别dequeueReusableCellWithIdentifier 和dequeueReusableCellWithIdentifier: forIndexPath
- dequeueReusableCellWithIdentifier和dequeueReusableCellWithIdentifier:forIndexPath的区别
- dequeueReusableCellWithIdentifier: 与dequeueReusableCellWithIdentifier: forIndexPath:的区别
- dequeueReusableCellWithIdentifier:和dequeueReusableCellWithIdentifier: forIndexPath:的问题
- [tableView dequeueReusableCellWithIdentifier:@"identify"]
- dequeueReusableCellWithIdentifier的运行机制
- dequeueReusableCellWithIdentifier的理解
- dequeueReusableCellWithIdentifier方法问题
- dequeueReusableCellWithIdentifier的运行机制
- dequeueReusableCellWithIdentifier的理解
- dequeueReusableCellWithIdentifier: forIndexPath: 获取cell
- C++使用SQLite步骤及示例
- SharePoint 门户添加内网域名 (转)
- ArcGis For iOS 开发配置
- SCI 收录医学影像学期刊分析
- wince 驱动添加
- dequeueReusableCellWithIdentifier
- 黑马程序员--数组
- MYSQL默认8小时自动关闭链接
- 黑马程序员 深入Java内存模型—内存操作规则总结
- VC 2012 visualstudio的项目属性表 .props文件
- C++开源跨平台类库集
- 解决httpClient返回结果中文乱码
- 使用XStream进行对象与xml
- Android表单组件,单选,多选,下拉列表,日期选择,时间选择