美文网首页
cell自适应高度的设置方法

cell自适应高度的设置方法

作者: lion_xion | 来源:发表于2015-10-28 19:55 被阅读386次

    myTableView.rowHeight = 100 , 这个方法可以设置行高,它只能执行一次,所以不灵活


    **************************************

    这个方法是tableView的得了gate所提供的协议方法,主要是用来设置每一行高度的

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

    //根据图片的尺寸设置行高

    UIImage*image = [UIImageimageNamed:self.picArr[indexPath.row]];

    //通过cgsize找到image里面图片的尺寸

    CGSizepicSize = image.size;

    //计算行高

    CGFloatrowHeight = picSize.height*self.view.frame.size.width/ picSize.width;

    //计算label的高度

    //根据对应的文字求出cell上label显示的高度

    NSDictionary*fontDic = [NSDictionarydictionaryWithObjectsAndKeys:[UIFontsystemFontOfSize:14],NSFontAttributeName,nil];

    //根据文字的大小,计算出文本的尺寸

    //还需要指定一个尺寸(375,0);

    CGRectrect  = [self.ziArr[indexPath.row]boundingRectWithSize:CGSizeMake(376,0)options:NSStringDrawingUsesLineFragmentOriginattributes:fontDiccontext:nil];

    //最后把结果作为返回值

    returnrowHeight + rect.size.height;

    }


    *********************************************

    - (void)creatView{

    self.myImageView= [[UIImageViewalloc]init];

    self.myImageView.backgroundColor= [UIColorcyanColor];

    [self.contentViewaddSubview:self.myImageView];

    [_myImageViewrelease];

    self.myLabel= [[UILabelalloc]init];

    //指定label的字体大小,默认是17号

    self.myLabel.font= [UIFontsystemFontOfSize:14];

    // 0是最大行数

    self.myLabel.numberOfLines=0;

    [self.myLabelsizeToFit];

    [self.contentViewaddSubview:self.myLabel];

    [self.myLabelrelease];

    }

    - (void)layoutSubviews{

    [superlayoutSubviews];

    //让imageview的尺寸和cell的图片大小相同

    //因为这个方法是最后一个被执行的,所以执行到这个方法的时候,已经对cell的各个属性进行完赋值操作,所以可以通过imageView.image找到图片的尺寸

    CGSizepicSize =self.myImageView.image.size;

    CGFloatheight =self.contentView.frame.size.width* picSize.height/ picSize.width;

    self.myImageView.frame=CGRectMake(0,0,self.contentView.frame.size.width, height);

    //计算label的高度

    //根据对应的文字求出cell上label显示的高度

    NSDictionary*fontDic = [NSDictionarydictionaryWithObjectsAndKeys:[UIFontsystemFontOfSize:14],NSFontAttributeName,nil];

    //根据文字的大小,计算出文本的尺寸

    //还需要指定一个尺寸(375,0);

    CGRectrect  = [self.myLabel.textboundingRectWithSize:CGSizeMake(376,0)options:NSStringDrawingUsesLineFragmentOriginattributes:fontDiccontext:nil];

    self.myLabel.frame=CGRectMake(0, height,self.contentView.frame.size.width, rect.size.height);

    }

    相关文章

      网友评论

          本文标题:cell自适应高度的设置方法

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