【问题标题】:Unable to get dynamic table cell size working in XCode 6 iOS 8无法在 XCode 6 iOS 8 中获得动态表格单元格大小
【发布时间】:2015-07-03 14:24:00
【问题描述】:

我正在尝试在新应用中采用自适应布局,并且学到了很多东西。对于最后一部分,我必须将文本转储到表格中并调整单元格以保持自适应,这似乎很容易。

我阅读了一些教程,对于 iOS 8 来说,这似乎归结为两件事:

  1. 设置了estimatedRowHeight 和rowHeight = UITableViewAutomaticDimension
  2. 正确设置约束以对单元本身产生压力

可耻的是,我一整天都在试图掌握这两点...我下载了 Keith Harrison 在self sizing table view cells 上提供的代码以查看它的工作原理。我将他的细胞复制到我更大的项目中并且它起作用了,但是我自己的细胞都没有起作用。我解构了他项目中的所有内容并将其最小化到几乎没有剩余的地步,然后尝试从头开始制作类似的单元格。我已经检查并验证了每个约束、每个拥抱/阻力设置等,但我的单元格高度未能扩展。

如果有人能指出我做错了什么(它一定很小,因为我看到的一切都是一样的)我已经上传了他的示例的最小化版本here (GitHub)

在这个例子中,我尝试了一个带有单个多行标签的单元格,周围有约束,以及一个尽可能靠近他的单元格的单元格。我发现在我的许多尝试中,一切看起来都一样,但是我会遇到UIView-Encapsulated-Layout-Height 约束问题。在我最后一次尝试中,我将内容容器的垂直间距的优先级从 1000 降低到了 999。

我检查过或尝试过但没有效果的事情:

  • 限制是超级视图(内容容器,而不是单元格)
  • 标签设置为 0 行
  • 拥抱和抵抗的优先级与工作细胞相同
  • 加载后重新加载表

【问题讨论】:

    标签: xcode uitableview cell


    【解决方案1】:

    经过长时间的尝试,我的解决方案现在可以工作了。两件事:

    1. UITableViewCells,虽然在情节提要中的所有方面都相同,但情节提要源中有一个rect 标记,具有定义的宽度和高度。我到处寻找 IB 中的值,但没有运气。解决了我发布的 GitHub 测试项目的问题。
    2. 转到我最初处理单元格的项目后,仍然没有调整大小,但是当方向改变时会调整。我必须添加一个cellForRowAtIndexPath 方法来调用所请求的单元格上的setNeedsDisplaylayoutIfNeeded

    按照上述一切似乎都在工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-12
      • 1970-01-01
      • 2013-01-11
      • 1970-01-01
      • 2016-10-15
      • 2015-02-26
      • 1970-01-01
      • 2014-07-08
      相关资源
      最近更新 更多