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