(Swift) Как управлять именами ячеек tableView после расширения tableViewSection? - PullRequest
0 голосов
/ 26 февраля 2020

В одном из разделов, когда я нажимаю toggleSwitch, он должен расширяться на количество одинаковых ячеек в зависимости от array.count

Метод ниже работает отлично. Когда я нажимаю на переключатель, он расширяет раздел с количеством строк, равным количеству элементов в массиве:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        switch section {
        case 0:
            return 7
        case 4:
            if expand == true {
                return array.count + 1
            }
            else {
                return 1
            }
        default:
            return 1
        }
    }

array может иметь любое количество элементов, в зависимости от данных в Realm. Так что это может быть 0, но это также может быть 5, 14 и c.
Код в CellForRowAt также отлично работает, расширяет раздел анимацией:

 cell.labelCell.text = "elements (\(array.count))"

 cell.cellSwitch.isOn = self.expand

 cell.callback = { [unowned self] check in
      self.expand = check
      UIView.transition(with: tableView,
                          duration: 0.5,
                          options: .transitionCrossDissolve,
                          animations: { self.tableView.reloadData()})
                }

ПРИМЕЧАНИЕ: Все новые ячейки в разделе имеют тот же тип, что и их родительская ячейка. Таким образом, каждая из новых ячеек имеет свое собственное имя, переключатель ...
Вопрос: Как я могу сделать так, чтобы новые ячейки имели свои имена, такие как элементы в array. Например: если первый элемент в массиве "abc", я хочу сделать первую ячейку: cell.labelCell.text = "ab c" (array [0])

1 Ответ

1 голос
/ 26 февраля 2020

Заменить

cell.labelCell.text = "elements (\(array.count))"

на

cell.labelCell.text = "elements (\(array[indexPath.row]))"

Примечание:

Вы можете получить анимацию бесплатно, если перезагрузите только раздел, а не всю таблицу Посмотреть.

...