Как я могу добавить / удалить ячейки в представлении таблицы более элегантно?

Я думаю, что это, вероятно, проблема X Y, поэтому сначала я дам некоторую справочную информацию.

Я создаю приложение, которое может показать «форму». Пользователь может заполнить форму с некоторыми вещами и создать некоторые пользовательские вещи.

Я думаю, что наиболее подходящим является использование табличного представления для формы. И я могу отобразить все текстовые поля, которые необходимо заполнить, в каждой ячейке таблицы.

Вот скриншот:

Кнопка «Добавить новый ввод» вставит новую ячейку внизу при нажатии. И если вы проведете одним из входов влево, вы получите кнопку «Удалить». Вы можете использовать это для удаления ввода.

Как видите, в этом табличном представлении нужно добавлять и удалять строки.

Первоначально я использовал Cocoapod под названием «TableViewModel», что делает это очень легко. Но потом я нашелдействительно серьезная ошибка в библиотеке, поэтому я не хочу больше его использовать.

Я пытался использовать вид таблицыdeleteRowsAtIndexPaths а такжеinsertRowsAtIndexPaths методы. Но если я сделаю это так:

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 1
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = UITableViewCell()
    cell.textLabel?.text = "Hello"
    return cell
}

// I use motionEnded here because I don't want to add a button or anything just to test this
override func motionEnded(motion: UIEventSubtype, withEvent event: UIEvent?) {
    tableView.deleteRowsAtIndexPaths([NSIndexPath(forRow: 0, inSection: 0)], withRowAnimation: .Fade)
}

Это приведет к исключению, говорящему о том, что табличное представление несовместимо с источником данных после того, как я удалил одну строку. Это означает, что у меня должен быть код для обработки этого несоответствия. Это определенно сделает мой код сложнее для чтения.

То же самое относится и к методу вставки.

Кроме того, мне нужно отслеживать, сколько строк в каждом разделе. И мой код просто становится очень грязным и неуправляемым со всем этим.

Я также искал другие библиотеки, но все они действительно странные и не такие простые, как "tableViewModel". Кажется, все они требуют от меня создания модели для табличного представления. Я не понимаю, как это сделать в моем случае. Я просто хочу отобразить кучу текстовых полей!

Как я могу вставить или удалить строки более элегантно? Я думаю, что мне либо нужно написатьextension из таблицы или научиться писать модель для моей таблицы. Но я не могу сделать ни один из этих методов.

Ответы на вопрос(3)

Ваш ответ на вопрос