在uitableview中同时添加两行

时间:2018-09-04 10:50:40

标签: swift xcode uitableview

对不起,我是新手。我试图同时在数组animalsList中添加两个或多个项目,并在tableview中进行更新。如何分配indexPath具有两个索引?我试图在这里寻找答案,但找不到任何答案。

如果添加更多项,如何更新表格视图?

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

var animalsList = ["dog", "cat", "pig"];

@IBOutlet weak var tableView: UITableView!

@IBAction func click(_ sender: Any) {
    animalsList.append("horse");
    animalsList.append("mouse");

    let indexPath = IndexPath(row: animalsList.count - 1, section: 0);
    tableView.beginUpdates();
    tableView.insertRows(at: [indexPath], with: .none);
    tableView.endUpdates();

}

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

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = UITableViewCell(style: .default, reuseIdentifier: "cell");
    cell.textLabel?.text = animalsList[indexPath.row];
    return cell;
}

3 个答案:

答案 0 :(得分:2)

确保已成功连接表视图委托和数据源。

@IBAction func click(_ sender: Any) {
    animalsList.append("horse")
    animalsList.append("mouse")
    tableView.reloadData()
}

答案 1 :(得分:1)

首先,您需要将这两行放入viewDidLoad()

tableView.dataSource = self
tableView.delegate = self

然后,您只需将项目插入数组中并重新加载tableView,它将自动再次在数组上重复并查看新值

animalsList.append('horse')
tableView.reloadData()

答案 2 :(得分:1)

要在UITableView中同时插入两行,您可以这样做。

@IBAction func click(_ sender: Any) {

    animalsList.append("horse")
    animalsList.append("mouse")

    var Arr_indexPath = [IndexPath]()

    Arr_indexPath.append(IndexPath(row: animalsList.index(of: "horse")!, section: 0))
    Arr_indexPath.append(IndexPath(row: animalsList.index(of: "mouse")!, section: 0))
    tableView.insertRows(at: Arr_indexPath, with: .none)
}