按文本长度动态更改标签和单元格大小

时间:2013-03-03 13:20:07

标签: xcode ios6 autolayout

我有一张带有原型细胞的桌子。我的项目使用自动布局。

单元格中包含一些标签,文本长度可以是多种。有时它的长度太长而无法适应其默认大小。

我想动态更改标签/单元格大小以显示整个文本。如果需要,自动添加更多行。

我尝试过标签的sizetofit,它根本没有做任何事情。

1 个答案:

答案 0 :(得分:2)

这是解决方案。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *cellText;
    CGRect screenBound = [[UIScreen mainScreen] bounds];
    CGSize screenSize = screenBound.size;
    CGFloat screenWidth = screenSize.width;
    cellText = [detailPeriodsContent objectAtIndex:indexPath.row];
    UIFont *cellFont = [UIFont systemFontOfSize:14];
    CGSize constraintSize = CGSizeMake(screenWidth-40, MAXFLOAT);
    CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];

    return labelSize.height + 35;
}