为什么模拟器只有12行?

时间:2017-05-10 02:05:30

标签: ios swift uitableview

我的数据有50个条目。模拟器在12点停止。我不明白。

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    funcSectCount += 1
    let data = AppData.orgNames
    print("data.count=", data.count, "  func Section count=", funcSectCount)
    return data.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    funcRowCount += 1
    let data = AppData.orgNames
    let cell = myTable.dequeueReusableCell(withIdentifier: "myCell", for: 
    indexPath)
    cell.textLabel?.text = data[indexPath.row]
    print("indexPath.row=", indexPath.row, "  func Row count=", funcRowCount)
    return cell
}

这是每个功能的最终打印:

  

data.count = 50 func段数= 3(好奇,但很小)
  indexPath.row = 11 func 行数= 12

2 个答案:

答案 0 :(得分:3)

每次需要新单元格时,表视图都会调用

tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)

如果一次只能看到12个单元格,那么表格视图最初只需要12个单元格,因此只需要12个单元格。你需要滚动才能需要更多。在需要它之前,它不会请求单元格。

答案 1 :(得分:1)

有趣的是,即使表格显示正确,打印输出也只达到12,无论您滚动到多少个单元格,都会发生这种情况。那是你找到的吗?这是因为您在视图中有12行,并且单元格被重用,因此您不会创建更多单元格,而只是重用已有的12个单元格。