AZ_自定义cell

1.自定义cell--纯代码


新建一个继承自UITableViewCell的字类,比如AZTuanGouCell


@interface AZTuanGouCell : UITableViewCell

在AZTuanGouCell.m文件中

  • 重写initWithStyle:reuseIdentifier:方法

    • 在这个方法中添加所有的子控件

    • 给子控件做一些初始化设置(设置字体,颜色)

    • 添加子控件的完整约束

    • 约束所使用的框架Masonry框架


-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier

{

 if(self=[super initWithStyle:style reuseIdentifier:reuseIdentifier])

 {

 CGFloat margin=10;

 //图片

 UIImageView *iconImageView=[[UIImageView alloc]init];

 iconImageView.backgroundColor=[UIColor blackColor];

 [self.contentView addSubview:iconImageView];

 self.iconView=iconImageView;

 //约束

 [iconImageView mas_makeConstraints:^(MASConstraintMaker *make) {

 make.top.left.equalTo(self.contentView).offset(margin);

 make.bottom.equalTo(self.contentView).offset(-margin);

 make.width.equalTo(80);

 }];

 }

 return self;

}

在AZTuanGouCell.h文件中提供一个模型属性,比如AZTg模型


/*团购数据*/

@property(nonatomic,strong)AZTg *tg;

在AZTuanGouCell.m文件中重写模型的set方法

  • 在set方法中给子控件设置模型数据

-(void)setTg:(AZTg *)tg

{

 _tg=tg;

 self.iconView.image=[UIImage imageNamed:tg.icon];

 self.titleLabel.text=tg.title;

 self.price.text=[NSString stringWithFormat:@"¥%@",tg.price];

 self.buyCount.text=[NSString stringWithFormat:@"%@人已购买",tg.buyCount];

}

在控制器中

  • 注册cell的类型

[self.tableView registerClass:[AZTuanGouCell class] forCellReuseIdentifier:ID];
  • 创建cell,传递数据

#pragma mark-UITableView的数据源方法

//返回具体的cell

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

{

//从缓存池中取出对应ID标识的cell,如果没有创建一个对应ID标识的cell

 AZTuanGouCell *cell=[tableView dequeueReusableCellWithIdentifier:ID];

//设置数据(传递模型数据)

 cell.tg=self.tgs[indexPath.row];

 return cell;

}

2.自定义cell--storyboard实现


新建一个继承自UITableViewCell的子类,比如AZTuanGouCell


@interface AZTuanGouCell : UITableViewCell@end

在storyboard文件中,找到UITableView里面的cell(动态cell)- 修改cell的class为AZTuanGouCell

这里写图片描述

  • 绑定循环利用标识

这里写图片描述

  • 添加子控件,设置子控件约束

这里写图片描述

  • 将子控件连线到类扩展中

@interface AZTuanGouCell()

@property (weak, nonatomic) IBOutlet UIImageView *iconImageView;

@property (weak, nonatomic) IBOutlet UILabel *titleLabel;

@property (weak, nonatomic) IBOutlet UILabel *priceLabel;

@property (weak, nonatomic) IBOutlet UILabel *buyCountLabel;@end

在AZTuanGouCell.h文件中提供一个模型属性,比如AZTg模型


@class AZTg;

@interface AZTgCell : UITableViewCell/** 团购模型数据 */

@property (nonatomic, strong) AZTg *tg;

@end

在AZTgCell.m中重写模型属性的set方法- 在set方法中给子控件设置模型数据


- (void)setTg:(AZTg *)tg

{

 _tg = tg;

 // .......

}

在控制器中- 给cell传递模型数据


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

 static NSString *ID = @"tg"; 

 // 访问缓存池 

AZTuanGouCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];  

// 设置数据(传递模型数据)

 cell.tg = self.tgs[indexPath.row];

 return cell;

}

这里写图片描述

转载于:https://www.cnblogs.com/azhang-coder/p/6099116.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值