当sectionOfRows in section = 0时隐藏tableview标题

时间:2017-03-17 23:54:29

标签: ios swift uitableview tableview

如果该部分没有返回任何行,我正在尝试隐藏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
  }

1 个答案:

答案 0 :(得分:1)

我认为这一行的问题是if peopleImagesTableView.numberOfRows(inSection: 1) == 0 {。因为tableView(_:heightForHeaderInSection:)tableView(_:numberOfRowsInSection:)之前运行,所以它无法知道行数和应用程序崩溃。您应该检查数据数组而不是调用numberOfRows函数。例如:

if data[1].count == 0 {
    headerHeight = 0
} else {
    headerHeight = 40
}