iOS学习之自定义UItableViewCell
在项目开发中,大部分情况下我们都需要自定义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(20, 5, 40, 40)] autorelease]; //不要忘了autorelease; self.avaterView.layer.cornerRadius = 5; 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 = 50; //注册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 = @"110120119389"; return cell; }