Добавление двух строк одновременно в uitableview swift - PullRequest
0 голосов
/ 04 сентября 2018

Извините, я очень новичок в Swift. Я пытаюсь добавить два или более элементов в мой массив animalsList одновременно и выполнить обновление в моем табличном представлении. Как я могу назначить свой 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 голосов
/ 04 сентября 2018

Сначала вам нужно поместить эти две строки в ваш viewDidLoad ()

tableView.dataSource = self
tableView.delegate = self

Затем вы можете просто вставить элементы в ваш массив и перезагрузить tableView, и он автоматически снова будет повторять массив и видеть новые значения

animalsList.append('horse')
tableView.reloadData()
0 голосов
/ 04 сентября 2018

Для вставки двух строк одновременно в 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)
}
0 голосов
/ 04 сентября 2018

Убедитесь, что вы успешно подключили делегат табличного представления и источник данных.

@IBAction func click(_ sender: Any) {
    animalsList.append("horse")
    animalsList.append("mouse")
    tableView.reloadData()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...