【问题标题】:Table View in Xib file doesn't load custom table view cell properlyXib 文件中的表格视图无法正确加载自定义表格视图单元格
【发布时间】:2020-08-29 06:00:46
【问题描述】:

我有一个带有表格视图的 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 文件添加到表格视图中的,但是即使单元格对所有内容都有限制,它们的大小也不正确?而且,表格视图的其余部分仍然是白色的,带有表格视图线?我不确定表格视图是否没有正确响应,因为它位于 Xib 中,或者我是否缺少我应该添加的内容。

非常感谢任何关于如何正确显示内容的指示或帮助!

【问题讨论】:

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

标签: ios swift uitableview autolayout xib


【解决方案1】:

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

1.使用 heightForRow 方法

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

2。使用自动布局

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

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

tableView.tableFooterView = UIView()

【讨论】:

    【解决方案2】:

    你应该使用这个;

    tableView.separatorStyle = .none
    

    对于空的 tableView 视图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-17
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多