使用systemLayoutSizeFittingSize设置高度时,iOS TableView Cell切除顶部

时间:2014-06-03 17:47:46

标签: ios objective-c uitableview

我正在尝试计算表格中每个单元格的高度。目前,我使用它。

CGSize maximumSize = CGSizeMake(tableView.frame.size.width, UILayoutFittingCompressedSize.height);
CGFloat height = [offscreenCell.contentView systemLayoutSizeFittingSize:maximumSize].height;

return height;

问题是单元格有许多标签,顶部有一个日期字符串标签,然后在下面添加了多个标签,列出了该日期的项目。由于某些原因,某些单元格中的日期标签被切断。我认为这可能与标签包裹到第二行并且高度未正确计算有关。

有什么想法吗?谢谢。

1 个答案:

答案 0 :(得分:1)

获取一个单元格,设置它的属性(日期标签等),调用layoutIfNeeded,然后计算这个高度:

MyCustomCell* cell = [myTableView dequeReusableCellWithIdentifier:@"CellId"];

for( NSString* text in arrayOfTexts )
{
    [cell setDateLabelText:text];
    [cell layoutIfNeeded];

    CGSize maximumSize = CGSizeMake(tableView.frame.size.width, UILayoutFittingCompressedSize.height);
    CGFloat height = [offscreenCell.contentView systemLayoutSizeFittingSize:maximumSize].height;//now store this height and use it in height for row at index path
}