三种自定义UITableViewCell的方法
2016-05-10 19:20
453 查看
一、子类化带xib的UITableViewCell
//1.tableView注册 UINib *nib = [UINib nibWithNibName:@"CustomTableViewCell" bundle:nil]; [tableView registerNib:nib forCellReuseIdentifier:@"CustomTableViewCell"]; - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { //不带NSIndexPath*,完全复用 CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CustomTableViewCell"]; //带NSIndexPath*,复用每一个NSIndexPath*的cell CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CustomTableViewCell" forIndexPath:indexPath]; } //2.tableView没注册,xib中必须注明identifier一致,否则不会复用 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *cellID = @"CustomTableViewCell"; CustomCell * cell = [tableView dequeueReusableCellWithIdentifier:cellID]; if (cell == nil) { //cell必须通过xib文件创建 cell = [[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil] lastObject]; } return cell; } @end
二、子类化不带xib的UITableViewCell
//1.tableView注册 [table registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"]; - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { //不带NSIndexPath*,完全复用 CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"]; //带NSIndexPath*,复用每一个NSIndexPath*的cell CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath]; return cell; } //2.tableView没注册 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *cellID = @"CustomTableViewCell"; //创建cell,用不带NSIndexPath*参数的方法 CustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID]; if (cell == nil) { //用自定义初始化的方法创建 cell = [[CustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID]; } return cell; }
相关文章推荐
- POJ 2533 Longest Ordered Subsequence【最长递增子序列】【DP思想】
- iOS UIKit:TableView之表格创建(1)
- UI、ID、UE和GUI,这些都是什么
- 【康拓逆展开】HDU2062Subset sequence
- Hibernate中Caused by: java.sql.SQLException: Field 'address_id'doesn't have a default value
- UItextField实时监控输入框的文字
- UITextField的使用详解
- mongoVUE:未将对象引用设置到对象的实例
- HDU 2767 Proving Equivalences (强联通)
- vueJs源码解读0-1
- Android Studio --- Gradle Build Running 死机问题
- 关于UILabel的一点使用心得
- iOS的UIButton单选的最佳方式
- SoapUI测试接口
- NSOperationqueue的一些感悟
- String、StringBuffer与StringBuilder之间区别
- 【BZOJ-1568】Blue Mary开公司 李超线段树 (标记永久化)
- IQueryable & IEnumberable 区别
- String、StringBuffer与StringBuilder之间区别
- 安卓UI控件拖拽的几种方法