为什么我在 UITableView 中得到空单元格?
Why did I get empty cells in UITableView?
我将 UITableView 放在 UIScrollView > View > StackView 中。
并且我像往常一样在 View Controller 中使用 numberOfRowsInSection 和 cellForRowAt 实现了 table 视图。这是我的分机。
extension OrderViewController: UITableViewDataSource, UITableViewDelegate {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
print("DEBUG: orderItems.count - \(orderItems.count)")
return orderItems.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: OrderCell.id, for: indexPath) as! OrderCell
cell.configure(orderItems[indexPath.row])
return cell
}
}
但我的模拟器实际上显示的是空单元格。我已经检查过 orderItems 数组只有 2 个成员。
我猜这是因为自动布局或堆栈视图。在堆栈视图中,我为除 table 视图之外的每个视图都提供了高度限制,因为它必须具有动态单元格编号。
我不知道我必须改变什么。
table view's attribute
这是因为您的 tableview 具有与您的视图相关的完整高度。只需添加 viewDidLoad
yourTableView.tableFooterView = UIView()
但是,如果您希望 tableview 具有动态高度,那么就这样做;
- 为您的 tableview 设置高度限制
- 为此约束创建一个 IBOutlet
重新加载表格视图后
heightConstraint.constant = yourRowHeight * arrayCount
self.view.layoutIfNeeded()
我将 UITableView 放在 UIScrollView > View > StackView 中。
并且我像往常一样在 View Controller 中使用 numberOfRowsInSection 和 cellForRowAt 实现了 table 视图。这是我的分机。
extension OrderViewController: UITableViewDataSource, UITableViewDelegate {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
print("DEBUG: orderItems.count - \(orderItems.count)")
return orderItems.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: OrderCell.id, for: indexPath) as! OrderCell
cell.configure(orderItems[indexPath.row])
return cell
}
}
但我的模拟器实际上显示的是空单元格。我已经检查过 orderItems 数组只有 2 个成员。
我猜这是因为自动布局或堆栈视图。在堆栈视图中,我为除 table 视图之外的每个视图都提供了高度限制,因为它必须具有动态单元格编号。
我不知道我必须改变什么。
这是因为您的 tableview 具有与您的视图相关的完整高度。只需添加 viewDidLoad
yourTableView.tableFooterView = UIView()
但是,如果您希望 tableview 具有动态高度,那么就这样做;
- 为您的 tableview 设置高度限制
- 为此约束创建一个 IBOutlet
重新加载表格视图后
heightConstraint.constant = yourRowHeight * arrayCount
self.view.layoutIfNeeded()