美文网首页
iOS 单元格自适应

iOS 单元格自适应

作者: 索性流年 | 来源:发表于2017-10-11 10:55 被阅读0次

    个人是通是Masonry
    +UITableView+FDTemplateLayoutCell
    来实现单元格自适应,这是两个第三方.相关头文件

    #import<Masonry.h>
    #import <UITableView+FDTemplateLayoutCell.h>

    首先重写表格单元格,在.h中声明属性和方法

    @property(nonatomic,strong)UILabel * Chatlabel;
    //方法用于传值返回单元格高度
    -(void)setmytext:(NSString *)mytext;

    接下来在.m中实现相关方法

    -(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
    if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
    self.Chatlabel = [[UILabel alloc]init];
    self.Chatlabel.numberOfLines = 0;
    self.Chatlabel.font = [UIFont fontWithName:@"Arial-BoldItalicMT" size:20];
    [self.contentView addSubview:self.Chatlabel];
    //其实这段可以忽略!
    }
    return self;
    }

    -(void)setmytext:(NSString *)mytext{
    self.Chatlabel.text = mytext;
    //适配一个Label
    [self.Chatlabel mas_makeConstraints:^(MASConstraintMaker *make) {
    //其实这段也可以忽略
    make.top.equalTo(self.contentView.mas_top);
    make.left.equalTo(self.contentView.mas_left);
    make.right.equalTo(self.contentView.mas_right);
    make.bottom.equalTo(self.contentView.mas_bottom);
    }];
    }

    以上属于View层,接下是是属于Controller层

    //相关注册单元格单元格必须是注册,才能够适配
    self.chattabel = [[UITableView alloc]init];//初始化表格
    self.chattabel.estimatedRowHeight = 300;//估算高度
    self.chattabel.separatorStyle = NO;//去掉分割线
    self.chattabel.delegate = self;//设置代理
    self.chattabel.dataSource = self;
    [self addSubview:self.chattabel];//加入视图
    [self.chattabel mas_makeConstraints:^(MASConstraintMaker *make) {
    make.edges.equalTo(self);
    }];//Masonry适配
    [self.chattabel registerClass:[ChatTableViewCell class] forCellReuseIdentifier:@"cell"];//注册单元格

    //设置单元格内容
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    ChatTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];//启用复用池
    [cell setmytext:self.cellarray[indexPath.row]];//调用从写单元格方法,将数组的内容传值
    return cell;
    }

    //返回单元格高的
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    //返回的是从写单元格的方法,也就是返回的字符串在Label内的高度
    return [tableView fd_heightForCellWithIdentifier:@"cell" configuration:^(ChatTableViewCell * cell) {
    [cell setmytext:self.cellarray[indexPath.row]];
    }];
    }

    能力有限,只能写这么多.有什么问题欢迎大家留言指正,我看到一定回复.感谢!!!!!!!

    相关文章

      网友评论

          本文标题:iOS 单元格自适应

          本文链接:https://www.haomeiwen.com/subject/xlniyxtx.html