我有一個UITableView具有自定義的UITableViewCells,它們是來自用戶的評論。現在,我的單元格高達115.0f,但我希望根據評論的時間長度來改變高度。如果評論超過三行,我希望用戶能夠選擇單元格,單元格可以展開以顯示整個評論。我一直在使用[UIView animateWithDuration: completion:
方法來展開單元格,但我不知道如何根據文本的長度計算出單元格的正確尺寸。有人可以幫我嗎?下面是一些代碼:如何根據NSString計算動態大小的UITableViewCells所需高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == 0)
{
return 480;
}
else
{
if (self.cellType == 0)
{
return 115;
}
else
{
return 75;
}
}
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row > 0)
{
NSIndexPath *path = [NSIndexPath indexPathForRow:indexPath.row inSection:indexPath.section];
UITableViewCell *cell = [tableView cellForRowAtIndexPath:path];
if ([cell isKindOfClass:[CommentCell class]])
{
CommentCell *cell = (CommentCell *)[tableView cellForRowAtIndexPath:indexPath];
UILabel *label = cell.commentBodyLabel;
NSString *theText = label.text;
CGSize constraintSize = CGSizeMake(label.frame.size.width, label.frame.size.height);
CGSize labelSize = [theText sizeWithFont:label.font constrainedToSize:constraintSize lineBreakMode:label.lineBreakMode];
CGFloat labelHeight = labelSize.height;
int numLines = (int)(labelHeight/label.font.leading);
NSLog(@"there are %i lines", numLines);
NSLog(@"The text height is %f", labelHeight);
if (numLines == 3)
{
//This is where I should expand the cell
}
}
感謝您的快速響應! –
該方法爲renderedSize返回0。 –