UITableViewCell高度不会调整,直到用户滚动

时间:2015-03-11 17:16:06

标签: ios objective-c uitableview

我正在尝试用文本填充cell.textLabel。该文本在数组中每个对象的行数不同,因此单元格需要调整高度。在用户滚动列表之前,单元格的高度不会调整。

这里是代码。

IB enter image description here

的图片
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
    static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] ;
        cell.textLabel.lineBreakMode = NSLineBreakByWordWrapping;
        cell.textLabel.numberOfLines = 0;
        cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:17.0];


      cell.textLabel.text = [kanyeLines objectAtIndex:indexPath.row];

        return cell;

}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *cellText =[kanyeLines objectAtIndex:indexPath.row];
    UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:17.0];

    NSAttributedString *attributedText =
    [[NSAttributedString alloc]
     initWithString:cellText
     attributes:@
     {
     NSFontAttributeName: cellFont
     }];
    CGRect rect = [attributedText boundingRectWithSize:CGSizeMake(tableView.bounds.size.width, CGFLOAT_MAX)
                                               options:NSStringDrawingUsesLineFragmentOrigin
                                               context:nil];

    return rect.size.height + 20;
}

1 个答案:

答案 0 :(得分:0)

所以我不小心为表格设置了两次数据源而不是设置委托。