【问题标题】:Adding an UIView to a UITableViewCell is not showing anything将 UIView 添加到 UITableViewCell 没有显示任何内容
【发布时间】:2020-01-25 17:32:26
【问题描述】:

我是 Xcode/Swift 的新手,今天才开始学习。我正在尝试将具有背景颜色的空 UIView 添加到 TableView 自定义单元格内的 Stack View。

基本上我的垂直堆栈视图只有 2 个元素:一个标签和那个 UIView。当我运行模拟器时标签显示正常,但 UIView 不可见,就好像我根本没有在情节提要中添加它一样。

我不确定在这里尝试什么。我只是选择了一个 UIView,将其拖入 Stack View 并将其背景设置为红色。在情节提要中,它看起来很好,但是当我运行模拟器时,只显示标签(堆栈视图的顶部),红色的 UIView 不在这里...

这是我的用户界面的屏幕截图。 你可以看到红色的 UIView 是可见的,但在我运行应用程序时不可见...... 但是,当我运行应用程序时,“标签”是可见的。

这是模拟器的截图:

你觉得有什么不对吗?

谢谢。

【问题讨论】:

  • 您好,可以分享一下您的模拟器截图吗?还有一件事你不能设置 stackview 背景颜色。
  • 当然,我已经编辑了消息并添加了模拟器的屏幕截图。它显示带有答案的随机问题。所有这些答案都是单元格中标签的自定义值。但是红色背景的 UIView 没有显示。我没有设置堆栈视图的背景,而是我添加的 UIView 的背景。
  • 似乎单元格的高度错误。如果视图被隐藏,您是否检查了视图层次结构调试器?如果你不知道我在说什么:medium.com/@dmytro.anokhin/…
  • @Jijidev 要么您需要为红色视图指定高度,要么在该视图中添加控件。如果您需要相同的图像,请告诉我
  • 谢谢大家,使用下面建议的代码,我现在可以看到视图(但仍然看不到它的背景颜色,这很奇怪)。你基本上没问题,它与高度属性有关。

标签: ios xcode uitableview uiview


【解决方案1】:

不确定,但我认为存在高度问题,为了测试只需添加

func tableView(tableView: UITableView!, heightForRowAtIndexPath indexPath:  IndexPath!) -> CGFloat {

      return 100
}

然后再次测试您的代码。

如果它工作,然后阅读有关自动布局 您可以通过使用自动布局来实现它。 万事如意

【讨论】:

  • 当我将它添加到 Mazen 提出的解决方案中时,这也有所帮助,谢谢。我仍然对该视图的背景颜色有疑问,即使我以编程方式将其设置为红色,它也没有设置为红色。 TableView 单元格是否会采取任何措施来防止这种情况发生?
  • 使用 Debug View Hierarchy 并检查。还使用您已实现的代码更新您的问题。那会很有帮助。
【解决方案2】:

你的问题不够清楚,可能是行高、自动布局或stackView分布。

尝试将 stackView 分布从“Fill Proportionally”切换为“Fill”

【讨论】:

  • 谢谢,有帮助。我在视图中添加了另一个我看不到的标签,现在我可以看到里面的标签很好。然而,即使我将 backgroundColor 设置为红色,我的视图的背景也是透明的(白色基本上作为表格视图的背景)。你知道为什么吗?
  • 我能想到的唯一原因是视图占用了 stackView 内的所有空间。这会导致您只看到您的案例中的标签/视图,而不是 stackView 本身。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-24
  • 2014-07-21
  • 2016-02-19
  • 2020-06-16
  • 2021-02-05
  • 2018-10-10
  • 1970-01-01
相关资源
最近更新 更多