当前位置: 首页 > 知识库问答 >
问题:

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

林和煦
2023-03-14

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

这是我在视图控制器中的设置代码,它具有表视图xib:类

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中,或者我是否缺少了我应该添加的东西。

如果您能提供一些建议或帮助,帮助您正确显示内容,我们将不胜感激!

共有2个答案

商骞仕
2023-03-14

你应该使用这个;

tableView.separatorStyle = .none

对于空tableView视图。

段干宏硕
2023-03-14

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

1.使用heightForRow方法

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

2. 使用自动布局

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

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

tableView.tableFooterView = UIView()
 类似资料:
  • 我按照本教程创建了一个自定义。xib,我计划在表格视图的单元格中使用它: https://medium.com/@brianclouser/swift-3-creating-a-custom-view-from-a-xib-ecdfe5b3a960 以下是我创建的 .xib 类: 以前,我在情节提要中创建我的表视图单元格,但我已经意识到我想要一个更灵活的视图,以便我可以在应用的不同部分使用它,所以

  • 我希望我的swift代码在每次按下按钮时都添加一个新的tableview单元格。你可以在下面的gif中看到我想要的东西。这段代码应该在func-tableView(_tableView:UITableView,cellForRowAt-indexPath:indexPath)中添加按钮- 在此输入图像描述

  • 我有一个带有几个IBOutlet的自定义单元格类。我已经将类添加到故事板。我已经连接了所有的出口。我的cellForRowAtIndexPath函数如下所示: 这是我的自定义单元格类: 当我运行应用程序时,我的所有手机都是空的。我已注销,它包含所有正确的字符串。我还尝试了将一个实际字符串与标签相等,这会产生相同的结果。 我错过了什么?感谢任何帮助。

  • 问题内容: 在我的应用程序中,我有一个表格视图,每个单元格中都有一个图像,标签和文本视图。我希望能够根据文本视图中的内容量自动调整单元格的大小。(文本视图是最下面的文本。) 到目前为止,我已经添加了正确的约束。文本视图的前导,尾随,顶部和底部,并且已禁用滚动和编辑。 在我的tableViewController.swift文件中,我编写了以下代码: 但是,这不起作用,因为当我在文本视图中添加更多文

  • 问题内容: 我正在尝试为在表格视图单元格中按下的按钮运行一个动作。下面的代码在我的表视图控制器类中。 在我的UITableViewCell类的称为requestCell的插座中,该按钮已被描述为“是”。 我正在使用“解析”来保存数据,并且想在按下按钮时更新对象。我的objectIds数组可以正常工作,cell.yes.tag还会在日志中输出正确的数字,但是,为了正常运行查询,我无法将该数字输入“连