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;

    }

  • 相关阅读:
    Iconfont在Vue中的使用
    yarn安装依赖报错
    动漫
    伤痛的魅力。绷带男子特辑
    记STM32F103C8T6+STLINK下载器在Keil中的设置
    JQuery浮动对象插件
    树莓派RTL8723BU_LINUX驱动安装
    python虚拟环境相关设置备忘
    解决树莓派控制台命令行乱码
    python模块wifi使用小记
  • 原文地址:https://www.cnblogs.com/iOS-mt/p/4187532.html
Copyright © 2011-2022 走看看