2011-04-15 78 views
1

如果您能告诉我如何根据UILabel的高度设置UITableViewCell的高度,我将非常感激。设置UITableViewCell的高度取决于UILabel的高度

我当前的代码来设置UILabel的高度:

cell.textLabel.lineBreakMode = UILineBreakModeWordWrap; 
      cell.textLabel.numberOfLines = 0; 
      cell.textLabel.text = [self getItemForKey:kSummary]; 
      cell.textLabel.font = [UIFont systemFontOfSize:15]; 
      cell.textLabel.textColor = [UIColor colorWithRed:54.0f/255.0f green:54.0f/255.0f blue:54.0f/255.0f alpha:1.0f]; 
      CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT); 
      CGSize labelSize = [[cell.textLabel text] sizeWithFont:[cell.textLabel font] constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap]; 
      cell.textLabel.frame = CGRectMake(0, 0, 280, labelSize.height); 
+1

http://stackoverflow.com/questions/2136051重复的问题/计算多行文本高度为uilabel-uitableviewcell不同的结果 – 2011-04-15 20:51:52

回答

5

您将需要实现的UITableViewDelegate方法- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSString *text = [self getItemForKey:kSummary]; 
    CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT); 
    //You will need to define kDefaultCellFont 
    CGSize labelSize = [text sizeWithFont:kDefaultCellFont 
         constrainedToSize:constraintSize 
          lineBreakMode:UILineBreakModeWordWrap]; 
    return labelSize.height + ANY_OTHER_HEIGHT; 
} 
+1

如果我这样做,填充增加与字数,我不知道为什么:/ – 2013-08-07 15:43:15