如何将循环的每个元素显示到表行?

时间:2016-11-22 11:01:05

标签: ios swift uitableview loops

如何返回循环的每个元素。我的意思是我希望将此循环的每个名称显示为行文本。它只返回最后一个元素。我该如何归还所有这些?

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let cellFullname = tableview.dequeueReusableCell(withIdentifier: "cell", for: indexPath as IndexPath)

        for last in lastnames {
            cellFullname.textLabel?.text = "\(last)"
        }
        return cellFullname
    }

4 个答案:

答案 0 :(得分:2)

只需更改您分配textLabel.text的部分:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cellFullname = tableview.dequeueReusableCell(withIdentifier: "cell", for: indexPath as IndexPath)


    cellFullname.textLabel?.text = lastnames[indexPath.row]

    return cellFullname
}

答案 1 :(得分:2)

您不需要循环来显示UITableView

中的元素

假设你有一个姓氏数组:

var lastnames = ["....

并且您希望将每个元素放在UITableViewCell中。两个步骤:

  1. 定义您需要的细胞数量:

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
        return lastnames.count 
    }
    
  2. 使用以下名称更新UITableView

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    
        let cellFullname = tableview.dequeueReusableCell(withIdentifier: "cell", for: indexPath as IndexPath)
    
    
        cellFullname.textLabel?.text = lastnames[indexPath.row]
    
        return cellFullname
    }
    

答案 2 :(得分:0)

您最好创建一个元素数组arr []。 使用此:

private childrenCounter: number[] = [];

private onDuplicate(): void {
    this.childrenCounter.push(0); // just add any element
}

答案 3 :(得分:0)

更新: 只需使用indexPath.row.

访问姓氏的每个元素即可
    let cellFullname = tableview.dequeueReusableCell(withIdentifier: "cell", for: indexPath as IndexPath)

    cellFullname.textLabel?.text = lastnames[indexPath.row]

    return cellFullname
}

如果你要在cellForRowAt中添加for循环,那么对于每个创建该循环的单元格,这也不好。