【问题标题】:How to hide and unhide a imageview in a tableview cell?如何在表格视图单元格中隐藏和取消隐藏图像视图?
【发布时间】:2017-01-05 00:27:54
【问题描述】:

我正在使用有两行的表格视图。每行都有一个标签、按钮和图像视图。最初,行高是 50,没有图像。当我单击单元格中的按钮时,图像选择器将打开并从相机胶卷中选择图像。那么如何使用单元格中的图像视图将 tableview 高度更新为 100?

【问题讨论】:

  • 您尝试了哪些方法,哪里没有成功?这个网站上有很多关于改变像元高度的问题。
  • 让我解释一下。我有两个单元格,其中包含标题名称标签“上传检查前面”右侧的按钮。当我单击按钮时,选择器将在那时打开该行更新以将该图像放置在图像视图中。所以我的问题是如何在从选择器上传图像之前和之后创建该图像视图并更新相同的鱼子高度
  • 初始阶段 - 一个按钮,一个标签,行高 - 50。最后阶段 - 一个按钮,一个标签,一个包含从选取器(相机胶卷)上传的图像的图像视图,行高为 100跨度>
  • 哦,好的。这应该可以通过自动布局和约束轻松实现。你有一个带有xib 的自定义单元格类吗?

标签: ios uitableview uiimageview show-hide


【解决方案1】:

您可以使用自动布局来实现这一点。如果你在xib 中设计这样的单元格:

高度为 100 的单元格:

在图像视图上有这些限制:

它看起来像这样,高度为 50:

奇怪的线是被自动布局自动缩小的图像视图。它在界面生成器中看起来很糟糕,但在设备/模拟器上会没问题。您必须记住的一件事是在单元格高度为 50 时简单地删除图像(而不是图像视图!),并在高度为 100 时设置它。

我还建议您了解自动布局,因为它是一个强大的工具。

【讨论】:

  • 非常感谢@Losiowaty。
  • 没问题。另外,如果您认为这是一个正确的答案,请将其标记为正确的答案(否决按钮下方的勾号)
  • 所以我应该在 -heightForatIndexpath 处保留行高的任何条件因为如果我输入静态浮点值会影响约束吗??
  • 嗯,是的。对于没有照片的单元格,您应该返回 50,对于带有照片的单元格,您应该返回 100。如果您从中返回一个常量值,则什么都不会改变。此外,您无需对问题进行投票,只需将其标记为已接受即可。