对不起,我是新手。我试图同时在数组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;
}
答案 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)
}