Table Xib 文件中的视图无法正确加载自定义 table 视图单元格

Table View in Xib file doesn't load custom table view cell properly

我有一个带有 table 视图的 Xib(我使用的是 Xib 而不是常规的故事板,因为我将 Xib 插入到 UIPageViewController 中)。在 Xib 的 class 中,我注册了一个自定义 table 视图单元格。尽管单元格插入 table 视图,但它不会根据其约束正确调整大小,也不会更改 table 视图的显示。

这是我的 xib:

这是我的自定义单元格:

这是我在具有 table 视图 Xib:class

的视图控制器中的设置代码
YearbookPageViewController: UIViewController {
    var signatures: [Signature] = []
    var pageNumber: Int = 0

    convenience init(signatures: [Signature], pageNumber: Int) {
        self.init(nibName: "YearbookPageViewController", bundle: nil)
        self.signatures = signatures
        self.pageNumber = pageNumber
    }

    // MARK: Properties
    @IBOutlet var pageTableView: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()

        self.pageTableView.delegate = self
        self.pageTableView.dataSource = self

        let nib = UINib(nibName: "SignatureTableViewCell", bundle: nil)
        self.pageTableView.register(nib, forCellReuseIdentifier:  SignatureTableViewCell.identifier)
    }

}

当我 运行 应用程序时,它是这样的:

所以基本上自定义单元格从 xib 文件添加到 table 视图,但是即使单元格对所有内容都有限制,它们的大小也不正确?而且,table 视图的其余部分仍然是白色的 table 视图行?我不确定 table 视图是否没有正确响应,因为它在 Xib 中,或者我是否遗漏了我应该添加的内容。

如有任何关于如何正确显示内容的指示或帮助,我们将不胜感激!

默认情况下,tableView 显示 UITableViewCell 的默认高度。如果我们想要自定义高度,可以有两种方式。

1.使用 heightForRow 方法

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 200
}

2。使用自动布局

在这种情况下,您的 tableView 单元格必须应用所有必需的约束来完成从上到下的约束阶梯,以便 autoLayout 可以在运行时计算单元格的高度。

对于第二个问题,您可以删除多余的分隔符。通过在 viewDidLoad

中执行以下代码
tableView.tableFooterView = UIView()

你应该用这个;

tableView.separatorStyle = .none

对于空的 tableView 视图。