UITableViewCell dynamic height :/

后端 未结 2 572
夕颜
夕颜 2020-12-29 00:37

Hee all,

I have created a UITableViewCell with a NIB file. There is 1 label in it wich is going to contain a tweet. So it needs to be a dynamic height. There also is

相关标签:
2条回答
  • 2020-12-29 01:18

    See this tutorial, http://www.cimgf.com/2009/09/23/uitableviewcell-dynamic-height/

    The trick is to make the label grow with the size of the cell, than you can just set the size of the cell and the cell will grow with it.

    Set the timeAgo label to align it self to the bottom of the cell.

    Set the numberOfLines of tweet to 0 via IB,re move all the draw code and only implement the following:

    - (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
        id item  = [self.item objectAtIndex:indexpath.row];
    
        CGFloat height = 85.0f;
    
        if ([item isKindOfClass:[Tweet class]]) {
            Tweet *tweet = (Tweet *)item;
            CGSize titleSize = [tweet.tweet sizeWithFont:[UIFont fontWithName:@"Arial" size:13.0f] constrainedToSize:CGSizeMake(260.0f, MAXFLOAT)];
    
            // adde the 24 pixels to get the height plus the time ago label.
            height =  titleSize.height + 24.0f;
    
        } else if( [item isKinfOfClass:[SC_Release class]]) {
            height = 65.0f;
        }
    
       return height;
    }
    
    0 讨论(0)
  • 2020-12-29 01:19
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        NSString *string = [tweetsArray indexPath.row];
        CGSize labelSize = [string sizeWithFont:[UIFont fontWithName:@"Verdana" size:17.0] 
                                                         constrainedToSize:CGSizeMake(280.0f, MAXFLOAT) 
                                                             lineBreakMode:UILineBreakModeWordWrap];
        return labelSize.height + 20;
    }
    
    0 讨论(0)
提交回复
热议问题