首页 > 解决方案 > 如何显示放置在 UIView .xib 文件中的 UITableView?

问题描述

将自定义 UIView 加载到 ViewController 中很简单:

if let randomView = Bundle.main.loadNibNamed("RandomView", owner: self, options: nil)?.first as? RandomView {

        self.view.addSubview(randomView)

    }

然后,这个 randomView 通常还会显示放置在其 .xib 文件中的任何标签、文本字段等。但是,如果我将 UITableView 放在其 .xib 文件中,它根本不会显示。

更令人困惑的是:如果我创建一个单独的 xib 文件并且在其中放置一个 UITableView ,我可以使用它来加载它Bundle.main.loadNibNamed并且它会正确显示。

我认为这与设置委托或数据源无关。将裸表放在 randomView 的 .xib 文件中时,它本身不会显示。尽管标签、文本输入等其他元素可以。

单独的 .xib 文件中的 UITableView 可以正确加载和显示,而无需设置任何委托或数据源。

第一个示例不显示表格,第二个示例显示。 描述 描述2

标签: iosuitableview

解决方案


该问题是由于缺少约束(参见第一张图片中的红色箭头)导致的,这会阻止表格视图正确显示。


推荐阅读