【问题标题】:How to resize table view cell depending on a label content如何根据标签内容调整表格视图单元格的大小
【发布时间】:2016-02-02 20:51:48
【问题描述】:

我一直在寻找答案,但我没有运气。我想要做的是调整表格视图单元格的高度。我正在使用带有图片的自定义单元格,带有一些文本的标签,在单元格的底部有两个按钮。

标签中的文本非常动态,因此我需要调整单元格高度。我已经尝试过我在这里读到的内容,例如: theLabelToAdjust.sizeThatFits 但它不起作用。我不知道还能做什么。

我也尝试过使用 heightForRowAtIndexPath 并返回类似 UIAutoRedimension 的东西(类似的东西),但它不起作用。

我的带有 IBOutlets 的自定义单元格文件位于另一个 swift 文件 UItableViewCell 类中。

非常感谢您的帮助。

【问题讨论】:

  • 我返回了 UITableViewAutomaticDimension 并没有工作。

标签: swift height tableview cell


【解决方案1】:

您需要正确设置约束,因此标签上的顶部和底部约束。您还需要将标签行数设置为0。此外,当您设置自动尺寸时,您应该给它一个估计的行高,例如:

self.tableView.estimatedRowHeight = 50
self.tableView.rowHeight = UITableViewAutomaticDimension

【讨论】:

  • 我做不到。我已经在 viewDidLoad() 中放置了两行,但是已经设置了约束并且行数是 0...
【解决方案2】:

您需要将标签约束设置为在所有方面都受到约束。然后在你的 viewDidLoad..

self.table.estimatedRowHeight = 50 // Always do slightly more than the average row height
self.tableView.rowHeight = UITableViewAutomaticDimension

然后在您的 cellForRowAtIndexPath 中为您的单元格创建一个对象...

let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! CellViewController 

确保为单元格创建一个类(在本例中为 CellViewController),并将单元格的标识符设置为情节提要中的某个内容,然后像我在上面所做的那样调用它。

终于在你的 cellForRowAtIndexPath...

cell.label.numberOfLines = 0 // "Label" is the outlet for the label I created in the CellViewController

【讨论】:

  • cellForRowAtIndexPath 中的 cell.label.numberOfLines = 0 是强制性的吗?我已经在 xib 本身中设置了它。
猜你喜欢
  • 2015-10-03
  • 1970-01-01
  • 2021-09-28
  • 2017-02-28
  • 2013-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-22
相关资源
最近更新 更多