如果该部分没有返回任何行,我正在尝试隐藏tableview标头。这是我目前所拥有的,但它在运行时返回EXC_BAD_ACCESS错误:
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
let headerHeight: CGFloat
switch section {
case 0:
headerHeight = 0
case 1:
if peopleImagesTableView.numberOfRows(inSection: 1) == 0 {
headerHeight = 0
} else {
headerHeight = 40
}
default:
headerHeight = 0
}
return headerHeight
}
答案 0 :(得分:1)
我认为这一行的问题是if peopleImagesTableView.numberOfRows(inSection: 1) == 0 {
。因为tableView(_:heightForHeaderInSection:)
在tableView(_:numberOfRowsInSection:)
之前运行,所以它无法知道行数和应用程序崩溃。您应该检查数据数组而不是调用numberOfRows
函数。例如:
if data[1].count == 0 {
headerHeight = 0
} else {
headerHeight = 40
}