zoukankan      html  css  js  c++  java
  • 自定义cell 自适应高度

    #pragma mark - 动态计算cell高度

    //计算 返回 文本高度

    + (CGFloat)calsLabelHeightWithContact:(Contacts *)contact

    {

        //size:   文字最大范围

        //options:计算高度 参数

        //  NSStringDrawingUsesLineFragmentOrigin:指定 原点 绘制字符串片段起源和基线。

        //attributes:文字某个属性 通常是大小

        //ios7 获取文本高 方法

        CGRect rect = [contact.introduce boundingRectWithSize:CGSizeMake(280, 2000)

                                                      options:NSStringDrawingUsesLineFragmentOrigin

                                                   attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:17.0f] }

                                                      context:nil];

        

        return rect.size.height;

    }

    //重写contact 的setter方法

    - (void)setContact:(Contacts *)contact

    {

        if (_contact != contact) {

            [_contact release];

            _contact = [contact retain];

            

            //将获取到的值赋值到控件上,赋值

            //1,头像

            _headImageView.image = [UIImage imageNamed:contact.headImageName];

            //2,名字

            _nameLabel.text = contact.name;

            //3,电话

            _phoneNumberLabel.text = contact.phoneNumber;

            //4,性别

            _genderLabel.text = contact.gender;

            //5,年龄

            if (contact.age) {

                _ageLabel.text = contact.age;

            }else{

                _ageLabel.hidden = YES;

            }

            

            //6,简介

            _introduceLabel.text = contact.introduce;

            

            //计算高度

            CGFloat height = [BoyTableViewCell calsLabelHeightWithContact:contact];

            

            //修改高度

            CGRect frame = _introduceLabel.frame;

            frame.size.height = height;

            _introduceLabel.frame = frame;

        }

    }

    #pragma mark - 提供类方法,返回模型内容高度

    //使用模型参数,

    + (CGFloat)cellHeightWithContact:(Contacts *)contact

    {

        CGFloat h = [self calsLabelHeightWithContact:contact];

        

        return 140 + h;

    }

    //行高

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

    {

        //1,通过组索引 找出对应的key

        NSString *key = _allKeysMutaArray[indexPath.section];

        //2,通过可以 查出对应分组

        NSMutableArray *array = _allDataMutaDict[key];

        

        //3,通过row 查出 数组对应项

        Contacts *c = array[indexPath.row];

        //计算出模型的高度

        CGFloat h =[BoyTableViewCell cellHeightWithContact:c];

        

        return h;

    }

  • 相关阅读:
    Nginx优化
    Mysql日常操作
    YUM源
    MySQL5.7安装手册
    自律——可以让我们活的更高级
    javascript中with的用法
    js中所有函数的参数(按值和按引用)都是按值传递的,怎么理解?
    base64编码的图片在网页中显示
    form表单提交没有跨域问题,但ajax提交存在跨域问题
    移动端1px的适配问题
  • 原文地址:https://www.cnblogs.com/iOS-mt/p/4187532.html
Copyright © 2011-2022 走看看