【问题标题】:Multiline Label displaying extra empty spaces in table view cell in Xcode 9多行标签在 Xcode 9 的表格视图单元格中显示额外的空格
【发布时间】:2018-02-28 04:10:06
【问题描述】:

我使用自动布局在表格视图中显示多行标签。一切都很好,但单元格高度比标签大小大得多。例如,如果我的标签高度为 100,则单元格高度应为 100,因为我返回 heightForRowAtIndexPath 作为标签高度,但其高度返回为 150 等等。

然后我尝试删除该标签的setPreferredMaxLayoutWidth,在这种情况下,该标签的最后一行没有显示(截断)。

【问题讨论】:

  • 用结果显示你的代码和你的表格视图的快照

标签: ios objective-c swift uitableview uilabel


【解决方案1】:

使用

 mytableView.rowHeight = UITableViewAutomaticDimension
  mytableView.estimatedRowHeight = 100.0

而不是从 heightForRowAtIndexPath 返回高度。 如果您的标签高度是动态的,则设置所有侧面自动布局约束。将标签的 Lines 属性设置为零。 如果您希望标签和单元格高度相同,则将前导、尾随、顶部、底部约束设置为零而没有边距。

【讨论】:

    【解决方案2】:

    最后通过在cellForRowAtIndex 中添加以下代码解决了这个问题

        cell.bounds = CGRectMake(0, 0, CGRectGetWidth(tableView.bounds), 99999);
        cell.contentView.bounds = cell.bounds;
        [cell layoutIfNeeded];
        [cell.myLabel setPreferredMaxLayoutWidth:CGRectGetWidth(cell.myLabel.frame)];
    

    点击here了解更多详情。

    【讨论】:

      猜你喜欢
      • 2015-10-12
      • 2015-05-29
      • 1970-01-01
      • 1970-01-01
      • 2014-12-21
      • 1970-01-01
      • 2017-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多