TableView单元格重复/重复

时间:2019-06-28 22:07:14

标签: ios swift cocoa-touch

因此,目前我正在为大学进行Swift项目。它有一个TableView应该有10个单元格,因为我的数据数组有10个索引。我能够设置该应用程序,除了10个条目之后,从第一个条目到最后一个条目... This is what the problem looks like.重复整个数据集,一切正常。 (TableData是保存单元格数据的数组)

override func numberOfSections(in tableView: UITableView) -> Int {
    return tableData.count
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return tableData.count
}


override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "locationCell", for: indexPath)

    let mapLocation = tableData[indexPath.row]
    cell.textLabel?.text = mapLocation.name
    return cell
}

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    selectedLocation = tableData[indexPath.row]
    performSegue(withIdentifier: "fromTableToMap", sender: selectedLocation)
}

4 个答案:

答案 0 :(得分:0)

你有

override func numberOfSections(in tableView: UITableView) -> Int {
    return tableData.count
}

替换为

override func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}

否则,您将重复10行10次(以创建10个部分),从而产生100行。

答案 1 :(得分:0)

使用它。

override func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}

答案 2 :(得分:0)

您缺少UITableView的基本概念。 TableView由一个或多个部分组成,每个部分由一个或多个单元格组成。

override func numberOfSections(in tableView: UITableView) -> Int {
    return tableData.count
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return tableData.count
}

这意味着您将使用10个部分,每个部分有10行。因此它将返回10 * 10 = 100个单元格(您可以手动计数)

应该是

override func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return tableData.count
}

现在您使用1作为部分,每个部分有10行。因此它返回1 * 10 = 10个单元格(您可以手动计数)

答案 3 :(得分:0)

只需从代码中删除numberOfSections方法,默认情况下它将只占用tableView的一部分。