在项目开发中,大部分情况下我们都需要自定义UITableViewCell, 今天就重点整理一下目前自己已经学过的自定义Cell的一些注意事项;

分步骤来写吧:

1.将自定义的Cell定义为属性;

2.重写Cell独有的初始化方法;

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
//添加子控件
[self.contentView addSubview:self.avaterView]; //我们一般将自定义的View添加到Cell的contentView中;
[self.contentView addSubview:self.nameLabel];
[self.contentView addSubview:self.phoneLabel];
[self.contentView addSubview:self.callBtn];
}
return self;
}

3.重写getter方法,懒加载视图

eg:
- (UIImageView *)avaterView {
if (!_avaterView) {  //如果为空,则创建avaterView;
self.avaterView = [[[UIImageView alloc] initWithFrame:CGRectMake(, , , )] autorelease];  //不要忘了autorelease;
self.avaterView.layer.cornerRadius = ;
self.avaterView.layer.masksToBounds = YES; //将超出部分裁剪掉.
}
return [[_avaterView retain] autorelease];  //安全处理机制;
}

4.在视图控制器中调用;(当然了,别忘了import导入哦);

  4.1.在ViewDidLoad中注册自定义Cell视图

- (void)viewDidLoad {
[super viewDidLoad];
//配置导航条
[self configureNavigationBarontent]; //设置全局cell的高度
self.tableView.rowHeight = ; //注册cell
[self.tableView registerClass:[ContactCell class] forCellReuseIdentifier:@"reused"]; }

  4.2在dataSource协议方法中使用

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  //只需一步就调用完成
ContactCell *cell = [tableView dequeueReusableCellWithIdentifier:@"reused" forIndexPath:indexPath];
  //对自定义的Cell进行一些简单设置
cell.avaterView.image = [UIImage imageNamed:@"Huocongcong.jpg"];
cell.nameLabel.text = @"聪聪";
cell.phoneLabel.text = @""; return cell;
}

最新文章

  1. EF CodeFirst增删改查之‘CRUD’
  2. 使用Jquery+EasyUI 进行框架项目开发案例讲解之四 组织机构管理源码分享
  3. [LeetCode]题解(python):059-Spiral Matrix II
  4. 为ProgressBar进度条设置颜色1
  5. 软谋在线教育诚招php,java,.net,设计师讲师(可兼职)
  6. phpstorm 自定义函数配置
  7. 统一Matlab下不同子图的色标colorbar
  8. Spring3 MVC 使用JSON进行前后台数据交互
  9. IE下判断IE版本语法使用
  10. HTML&CSS基础学习笔记1.16-单元格间距和表格主体
  11. MVC 常用方法
  12. OCP读书笔记(21) - 题库(ExamA)
  13. 教你用Perl 实现Base64编码
  14. ion-scroll zooming="true" android端无法缩放的问题
  15. RSP小组——团队冲刺博客五
  16. JavaScript中的label语句,及应用
  17. JS模拟实现数组的map方法
  18. Python进制转换(二进制/八进制/十进制/十六进制)
  19. vscode 中使用php-cs-fixer和PHP Formatter 插件规范化PHP代码
  20. 通过JVM 参数 实现spring 应用的二进制代码与配置分离。

热门文章

  1. Ubuntu12.04 下安装Chrome浏览器
  2. ural 1353. Milliard Vasya's Function
  3. Altium Designer中使用差分对布线
  4. 设计模式(十):Decorator装饰者模式 -- 结构型模式
  5. mongoose--------ORM数据操作框架
  6. Qt的内存管理
  7. Unity 制作虚拟手柄例子
  8. Android(java)学习笔记262:JNI之工具快速开发步骤
  9. 高性能Java Web 页面静态化技术
  10. Redis配置不当可导致服务器被控制,已有多个网站受到影响 #通用程序安全预警#