为什么index.row在滚动tableview

时间:2018-05-27 10:57:48

标签: ios swift uitableview

在这里,我想使用index.row来索引数组,但奇怪的是index.row会在滚动tableView时重新计算。有没有解决方案?或者另一种索引数组的方法?

如下所示:

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
4 #recount from 4
5
6
7
8
9
10

以下是源代码:

func tableviewSetUp() {
    let rect = self.view.frame
    self.tableView = UITableView(frame: rect)
    self.tableView.backgroundColor = UIColor.black
    self.tableView.delegate = self
    self.tableView.dataSource = self
    self.view.addSubview(self.tableView)
    self.tableView.register(WallpaperTableViewCell.self, forCellReuseIdentifier: "wallpaperCell")
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "wallpaperCell", for: indexPath) as! WallpaperTableViewCell
    print(indexPath.row)  //here I print the row number
    let wallpaper = self.wallpaperIDList[indexPath.row]//here I using the index.row to index the array
    return cell
}
func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 50
}

2 个答案:

答案 0 :(得分:0)

表视图将根据需要调用其数据源方法。您不应该假设哪些IndexPath将传递给cv::remap。当被问到时,只需返回细胞

如果它要求第4行两次,则将第4行两次。

应该使用数组作为数据模型。这是表示单个节表视图的数据的一种非常好的方法。表视图要求索引4处的行两次这一事实不会改变它。 (或者为分段表视图使用数组数组。)

答案 1 :(得分:-1)

无论是否重述,索引行都不重要。它不会影响tableview显示数据的方式。我运行了我的代码,结果和我期望的一样完美。