自定义UITableView动态单元格高度

Fre*_*pl3 7 iphone uitableview uitextview

我搜索并搜索了无数的博客和文章,了解如何确定自定义UITableViewCell的动态高度及其详细文本.我真的很难找到任何关于此的好文档.

我需要做的是让细胞根据里面的文字生长,但永远不要低于70的高度.

我已经在StackOverflow上尝试了这类问题的几个答案,但没有一个能够工作.我的整个应用程序即将完成,但我确实需要在发布之前完成这项工作并且很麻烦.

这是我正在尝试但我只是得到一个相互重叠的细胞.根据我的阅读,我需要找到框架,如果单元格中的自定义单元格或textview,但我不知道如何做到这一点或将它们混合在一起返回一个高度.

非常感谢任何帮助谢谢!

- (CGFloat) tableView: (UITableView *) tableView heightForRowAtIndexPath: (NSIndexPath   
*) indexPath
{

  CGSize aSize;
aSize = [[(Tweet*)[tweets objectAtIndex:indexPath.row]tweet] sizeWithFont:[UIFont 
systemFontOfSize:14]
            constrainedToSize:CGSizeMake(300.0, 1000.0)
                lineBreakMode:UILineBreakModeTailTruncation];

return  aSize.height;
}
Run Code Online (Sandbox Code Playgroud)

Wri*_*sCS 18

我曾经有类似的问题,这对我帮助很大.

#define PADDING 10.0f
- (CGFloat)tableView:(UITableView *)t heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *text = [self.items objectAtIndex:indexPath.row];
    CGSize textSize = [text sizeWithFont:[UIFont systemFontOfSize:14.0f] constrainedToSize:CGSizeMake(self.tableView.frame.size.width - PADDING * 3, 1000.0f)];

    return textSize.height + PADDING * 3;
}
Run Code Online (Sandbox Code Playgroud)

  • 你应该注意在iOS 7中不推荐使用`sizeWithFont:constrainedToSize:`,所以你应该使用`boundingRectWithSize:options:attributes:context:` (5认同)