iOS UITableViewCell自适应高度

  在cell.m文件中

  1)初始化方法中:

 

 self.lalName=[[UILabel alloc] initWithFrame:CGRectMake(71, 5, 250, 40)];
    [self addSubview:self.lalName];

 

 2)创建方法:

 

//给用户介绍赋值并且实现自动换行
-(void)setIntroductionText:(NSString*)text{
    //获得当前cell的高度
    CGRect frame=[self frame];
    //文本赋值
    self.lalName.text=text;
    CGSize size=CGSizeMake(300, 1000);
    //设置label的最大行数
    self.lalName.numberOfLines=10;
    CGSize labelSize=[self.lalName.text sizeWithFont:self.lalName.font constrainedToSize:size lineBreakMode:NSLineBreakByClipping];
    self.lalName.frame=CGRectMake(self.lalName.frame.origin.x, self.lalName.frame.origin.y, labelSize.width, labelSize.height) ;
    
    //计算出自适应的高度
    frame.size.height=labelSize.height+20;
    self.frame =frame;
    
}

  

  在ViewController中:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *acell=@"acell";
    TextKitTableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:acell];
    if (!cell) {
        cell=[[[NSBundle mainBundle] loadNibNamed:@"TextKitTableViewCell" owner:self options:nil]lastObject];
    }
    
 
    [cell setIntroductionText:@"where are you? where are you? where are you? where are you? where are you? where are you? where are you? where are you? where are you? where are you?where are you? where are you? where are you? where are you? where are you? where are you? where are you? where are you? where are you? where are you?"];
    return cell;
    
}

  当然别忘记了返回给cell高度

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell *cell=[self tableView:self.tableViewTextKit cellForRowAtIndexPath:indexPath];
    NSLog(@"height===%f",cell.frame.size.height);
    return cell.frame.size.height;
}

  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。