UITableView -registerClass:forCellReuseIdentifier:

In iOS 6, 2 new methods -registerClass:forCellReuseIdentifier: and -dequeueReusableCellWithIdentifier:forIndexPath: were added to UITableView.

Prior to this, you would write code like the following when you need a UITableView cell instance:

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

NSString* cellIdentifier = @"MyTableViewCellIdentifier";

UITableViewCell* cell = aTableView.dequeueReusableCellWithIdentifier(cellIdentifier)

if (!cell) {

cell = [[UITableView alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];

}

//config cell

return cell;

}

Starting with iOS 6, you can do this instead:

- (void)viewDidLoad {

[super viewDidLoad];

NSString* cellIdentifier = @"MyTableViewCellIdentifier";

[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:cellIdentifier];

}

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

NSString* cellIdentifier = @"MyTableViewCellIdentifier";

UITableViewCell* cell = aTableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath:indexPath)

//config cell. cell is always non-nil and the cell will have the correct height as returned by -tableView:heightForRowAtIndexPath:.

return cell;

}

-dequeueReusableCellWithIdentifier:forIndexPath: always return a valid cell so we can skip the nil check. The cell will also have the correct height as returned by -tableView.heightForRowAtIndexPath:

Note that using this, all cells created will have the style UITableViewCellStyleDefault unless we use a UITableViewCell subclass.

转载地址:http://tinyletter.com/iosdev/letters/ios-dev-tip-50-uitableview-registerclass-forcellreuseidentifier

时间: 2024-11-07 17:34:04

UITableView -registerClass:forCellReuseIdentifier:的相关文章

UITableView中registerClass: forCellReuseIdentifier:的用法

你已经用NIB做了一个Cell,或者自定义了一个Cell.我们在你创建UITableView的时候,就可以顺带 self.tableView.backgroundColor = xxxx; [self.tableView registerClass:[CustomCell class] forCellReuseIdentifier:@"CustomCell"]; 这样你在- (UITableViewCell *)tableView:(UITableView *)tableView ce

iOS 程序性能优化

前言 转载自:http://www.samirchen.com/ios-performance-optimization/ 程序性能优化不应该是一件放在功能完成之后的事,对性能的概念应该从我们一开始写代码时就萦绕在我们脑子里.了解 iOS 程序性能优化的相关知识点,从一开始就把它们落实到代码中是一种好的习惯. 初级技巧 使用复用机制 在我们使用 UITableView 和 UICollectionView 时我们通常会遇到「复用 Cell」这个提法,所谓「复用 Cell」就是指当需要展示的数据条

UITableView属性和方法

1.初始化一个UITableView 1 - (id)initWithFrame:(CGRect)frame style:(UITableViewStyle)style 1 struct CGRect { 2 CGPoint origin; 3 CGSize size; 4 }; 5 typedef struct CGRect CGRect; 1 typedef enum { 2 UITableViewStylePlain, //平铺样式 3 UITableViewStyleGrouped //

UITableView(四)

1.RootTableViewController.m 1 #import "RootTableViewController.h" 2 #import "FirstTableViewCell.h" 3 #import "MyTableViewCell.h" 4 #import "FirstModel.h" 5 #import "MyModel.h" 6 @interface RootTableViewCon

UITableView / UITableViewDataSource / UITableViewDelegate

一张图解释TableView各属性 0 UITableView Initializing a UITableView Object 初始化: - (instancetype)initWithFrame:(CGRect)frame style:(UITableViewStyle)style Configuring a Table View 配置: 1. style /** TableView样式,默认Plain */ @property(nonatomic, readonly) UITableVi

iOS开发 UITableView的方法和属性总结

本文描述UITableView的各种方法,属性,委托以及数据源.本文的目的只是总结UITableView的用法,详细的例子另撰文描述. 1 数据源  UITableViewDataSource协议 01 返回组(节)的个数,默认是返回1,如果只有1组数据,可以不用实现该方法. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 02 返回某一组的行数,该组由section的值决定 - (NSInteger)table

UITableView优化那点事

forkingdog关于UITableView优化的框架其实已经能够应用在一般的场景,且有蛮多的知识点供我们借鉴,借此站在巨人的肩膀上来分析一把. 至于UITableView的瓶颈在哪里,我相信网上随便一搜就能了解的大概,我这里顺便提供下信息点: 1 //罪魁祸首 2 tableView:cellForRowAtIndexPath: 3 tableView:heightForRowAtIndexPath: 框架同样根据这两个痛点给出了解决方案: 高度计算 fd_heightForCellWith

第08章 表视图UITableView简介

UITableView表视图 UITableViewCell表视图单元 UITableViewDelegate UITableViewDataSource 可以在UITableViewCell中添加子视图,从而在一个单元中放置更多的数据. 可以通过代码,或者在nib文件中加载他们. 两种基本样式: 分组表(grouped table):每个组都由嵌入在圆角矩形中的多个行组成. 无格式表(plain table):默认的样式,没有圆角矩形,如果使用了索引,又称为索引表. 表中的每个部分,称为数据源

iOS - UITableView中有两种重用Cell的方法

UITableView中有两种重用Cell的方法: iOS代码 - (id)dequeueReusableCellWithIdentifier:(NSString *)identifier; - (id)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath NS_AVAILABLE_IOS(6_0); 在iOS 6中dequeueReusableCellWith