【问题标题】:Change height of static UITableViewCell to fit content更改静态 UITableViewCell 的高度以适合内容
【发布时间】:2014-05-01 16:16:43
【问题描述】:

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

我正在努力解决的问题:

  • 如何定位静态表格单元格(是否与动态相同?使用重用标识符?)
  • 如何动态调整静态表格单元格的大小以适应内容?

【问题讨论】:

    标签: ios uitableview


    【解决方案1】:

    你必须实现

    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 不应该 实现数据源协议。 - Table View Programming Guide for iOS

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

    【讨论】:

      猜你喜欢
      • 2017-05-21
      • 2014-05-19
      • 2021-02-22
      • 2011-11-03
      • 1970-01-01
      • 2014-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多