【问题标题】:Hiding UI elements in UITableViewCell and resize cell according在 UITableViewCell 中隐藏 UI 元素并根据其调整单元格大小
【发布时间】:2017-03-17 06:44:06
【问题描述】:

使用 UITableViewAutomaticDimension 在 UITableView 中隐藏 UI 元素的最佳方法是什么?

我在一个单元格中有多个标签、按钮、图像视图。对于特定条件,我想隐藏其中一些,并希望 tableview 相应地调整大小。

如果我遗漏了什么,请纠正我。

【问题讨论】:

  • UIImageView 的情况下,您必须将它们的高度约束设置为0,并且只需将UILabel 的文本设置为空字符串,前提是它的高度是从其内容中推断出来的。如果您已明确设置高度,则需要从约束中取出并将其设置为 0。
  • 单元格中有大约 25 个元素,一些标签位于第 0 行,可能存在或不存在。所以为它们写高度约束会很麻烦。如果可能,请建议任何其他方法
  • 只要UILabel 为空,它们的高度将为0,并且自动尺寸不会有任何问题,但是它们的垂直间距限制仍然有效。您可以以编程方式遍历视图中的所有元素,然后遍历每个元素的约束,直到找到高度约束并将其设置为 0,但这需要大量处理。除此之外,对不起,我不知道:D
  • 没有问题 Rikh 感谢您的时间和精力。如果我得到有用的东西会通知你。

标签: ios swift uitableview uitableviewautomaticdimension


【解决方案1】:

使用 StackView。

StackView 将管理它,当元素隐藏时它们会自动调整大小。 在 tableview 单元格中使用 StackView

Click Here了解如何使用 StackView

Click Here For Example,这将帮助您更了解。

【讨论】:

  • 一定会过去告诉你的。
  • 你找到解决方案了吗?
  • 对不起兄弟,我还有一些其他优先事项,所以事情转移到下一个冲刺,即接下来的 2 周。完成后会及时通知您。
  • 使用 stackview 很容易解决我的问题。很高兴我的应用支持 iOS 9 及更高版本。
【解决方案2】:

如果您使用的是UITableViewAutomaticDimension,那么您必须以编程方式更新约束。

即,如果您有 2 个标签和 2 个按钮,并且如果您想在单击其中一个按钮时隐藏在标签上。那么您必须管理该标签的高度约束以自动管理单元格高度。

【讨论】:

  • 感谢@jatin 的帮助,但问题是单元格中有大约 25 个元素,一些标签位于第 0 行,可能存在或不存在。所以为它们写高度约束会很麻烦。如果可能,请建议任何其他方法。
  • 那么你必须使用stackview。但唯一的问题是stackview的支持是iOS 9和更高版本的iOS。
  • 我的项目支持 iOS 9+,所以没有问题。会试一试,让你知道。
  • 我也面临着图像视图的问题。当我使用 sdwebimage 获取图像并滚动时,每次滚动时图像视图的大小都会增加,知道为什么吗?
猜你喜欢
  • 2014-09-16
  • 1970-01-01
  • 1970-01-01
  • 2017-07-28
  • 2020-10-12
  • 1970-01-01
  • 2013-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多