【问题标题】:UITableView resize cell based on contentUITableView 根据内容调整单元格大小
【发布时间】:2015-10-03 19:48:36
【问题描述】:

您好,我需要帮助了解如何根据其内容调整单元格大小。

所以首先我当然找到了很多链接:

iOS: Multi-line UILabel in Auto Layout

https://www.youtube.com/watch?v=CkvZEJ7dIfw

https://github.com/williamhqs/GSTableViewDynamicHeight

正如我们所说的 git 示例(最后一个链接),我无法理解如何更改某些标签并使其工作。例如,如果我删除 UILabel 并创建新的并将其与 content 属性绑定(内容 - 它是底部标签的 IBOutlet 属性)。我似乎丢失了一些设置,单元格无法拉伸。

所以我想我不太了解如何去做。

我想了解的:

  1. 如何在情节提要中或以编程方式设置自动布局。
  2. 我应该以编程方式处理哪些事情才能完成。
  3. 首选尺寸如何影响标签。我们是否需要每次都使用 superview 的债券作为首选尺寸?

同样在 git 示例中,我们有一个可以改变自身大小的标签。如果我们有 2 个带有动态内容的 UILabel 怎么办?

如果您有一些链接或视频,请将它们放在这里,因为我真的卡住了。谢谢!

我知道这是重复的问题,但我不明白如何设置它。

【问题讨论】:

    标签: ios uitableview ios7 ios8 autolayout


    【解决方案1】:

    不确定它是否适用于 AutoLayout,尽管在以编程方式布局单元格时,运行“layoutIfNeeded()”修复了我的单元格内容拉伸问题。

    layoutIfNeeded 在配置方法结束时运行,用于将值(视图模型)映射到 UI 对象(视图)

    【讨论】:

      【解决方案2】:

      要使 Self Sizing Cells 工作,需要三个步骤:

      1. 正确设置单元格的约束(最重要的是顶部和底部约束)
      2. 指定表格视图的estimatedRowHeight
      3. 将表视图的rowHeight 设置为UITableViewAutomaticDimension

      第 2 步和第 3 步非常简单,只需在 viewDidLoad 方法中添加这两行即可

      tableView.estimatedRowHeight = 44.0 // or whatever you want
      tableView.rowHeight = UITableViewAutomaticDimension
      

      对于第 1 步,这是自我调整尺寸过程中最重要的部分 您需要记住的是“自我调整大小需要从您的约束中获取其大小。”

      基本上我们需要确保我们的单元格的顶部空间和底部空间约束设置正确这里是一个示例:

      只有两个标签,限制顶部、底部、左右和容器之间的空间(见图)UILabels Lines 属性为 0,因此您允许多行

      另一个我正在从事的项目的例子:

      底线:

      标签约束应该推动表格视图单元格的大小并使其更高。因此,请务必检查顶部和底部约束。

      另外,你可能会遇到使用多行 UILabel 的介绍问题,因为

      UILabel 和 NSTextField 的内在内容大小对于 多行文本。

      所以一定要设置你标签的preferredMaxLayoutWidth属性:

      - (void)layoutSubviews
      {
          [super layoutSubviews];
          self.contentLabel.preferredMaxLayoutWidth = self.contentLabel.frame.size.width;
      
      }
      

      有关此问题的更多信息,请阅读:

      iOS Autolayout multi line UILabel

      iOS multi-line UILabel in Auto-layout

      preferredMaxLayoutWidth

      关于动态表格视图单元格高度的更多信息,这里有一些有用的资源:

      UITableView Tutorial: Dynamic Table View Cell Height

      Understanding Self Sizing Cells and Dynamic Type in iOS 8

      Self Sizing Table View Cells

      Mysteries of Auto Layout, Part 1 (wwdc 2015)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-28
        • 2017-02-28
        • 1970-01-01
        • 2016-09-30
        • 2013-05-26
        • 2016-02-02
        • 1970-01-01
        • 2014-04-29
        相关资源
        最近更新 更多