Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Xib文件中的表格视图未正确加载自定义表格视图单元格_Ios_Swift_Uitableview_Autolayout_Xib - Fatal编程技术网

Ios Xib文件中的表格视图未正确加载自定义表格视图单元格

Ios Xib文件中的表格视图未正确加载自定义表格视图单元格,ios,swift,uitableview,autolayout,xib,Ios,Swift,Uitableview,Autolayout,Xib,我有一个带有表视图的Xib,我使用的是一个Xib,而不是一个普通的故事板,因为我将Xib插入UIPageViewController。在Xib的类中,我注册了一个自定义表视图单元。尽管单元格插入到表视图中,但它不会根据其约束正确调整大小,也不会更改表视图的显示 这是我的xib: 这是我的定制手机: 这是我在视图控制器中的设置代码,它具有表视图Xib:class YearbookPageViewController: UIViewController { var signatures:

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

这是我的xib:

这是我的定制手机:

这是我在视图控制器中的设置代码,它具有表视图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文件添加到表视图中的,但是它们的大小不正确,即使单元格对所有内容都有约束?并且,tableview的其余部分仍然是白色的,带有tableview线条?我不确定表视图是否没有正确响应,因为它在Xib中,或者我是否缺少应该添加的内容


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

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

一,。使用heightForRow方法

二,。使用自动布局

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

对于第二个问题,可以删除额外的分隔符。通过在viewDidLoad中执行以下代码

tableView.tableFooterView = UIView()

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

一,。使用heightForRow方法

二,。使用自动布局

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

对于第二个问题,可以删除额外的分隔符。通过在viewDidLoad中执行以下代码

tableView.tableFooterView = UIView()
你应该用这个

tableView.separatorStyle = .none
对于空的tableView视图。

您应该使用它

tableView.separatorStyle = .none

对于空的tableView视图。

您的tableView显示的是默认单元格大小,您必须在单元格中完成约束阶梯,例如必须添加顶部和底部约束。感谢您的快速回答@UmairAfzal-这有助于更正单元格的高度。是否有原因使表视图的其余部分仍然为白色,并带有线条,而不是在自定义单元格完成后变为空白,没有更多单元格?如果表视图显示默认单元格大小,则必须在单元格中完成约束阶梯,例如,必须添加顶部和底部约束。感谢您的快速回答@UmairAfzal-这有助于更正单元格的高度。是否有原因使表视图的其余部分仍然是带行的白色,而不是在自定义单元格完成后变为空白且没有更多单元格?