繁体   English   中英

更改静态UITableViewCell的高度以适合内容

[英]Change height of static UITableViewCell to fit content

就像标题所说的一样。 我正在研究如何更改静态UITableViewCell的高度以适合内容。 所以我有几个静态节,每个节中都有1个TableViewCell。 里面的UILabel溢出了UITableviewCell,我需要它来适应。

在此处输入图片说明

我正在努力的是:

  • 如何定位静态表格单元格(与动态表格单元格一样吗?使用重用标识符?)
  • 如何动态调整静态表格单元的大小以适合内容?

您必须实施

tableView:heightForRowAtIndexPath: 

UITableViewDelegate方法。 这是以编程方式计算单元格高度并将其返回到表格(当表格需要显示时)的唯一方法。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSString *string = @"Your string";

    CGRect boundingBox = [string boundingRectWithSize:CGSizeMake(CGRectGetWidth(self.view.bounds), CGFLOAT_MAX)
                                              options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
                                           attributes:@{NSFontAttributeName: [UIFont systemFontOfSize:14.0f]}
                                              context:nil];

    return CGRectGetHeight(boundingBox);
}

该解决方案是最干净的,并且有效。 上面的方法是委托协议的一部分,似乎可以用来调整情节提要定义的样式和布局。 但是,Apple不推荐这样做:

如果情节提要中的表视图是静态的,则包含表视图的UITableViewController的自定义子类不应实现数据源协议。 - 适用于iOS的Table View编程指南

因此,如果要动态更改单元格的属性,请使用动态单元格,而不是静态单元格。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM