maxsokolov / TableKit

Type-safe declarative table views.
MIT License
706 stars 74 forks source link

ConfigureCell не сохраняется значение #63

Closed Banck closed 7 years ago

Banck commented 7 years ago

Привет! Используя демо проект заменил UILabel на UITextField в NibTableViewCell и в NibTableViewCell.swift сделал так:

 func configure(with number: Int) {

    }

Сделал 20 ячеек. В первой ячейке ввожу текст в UITextField и скролю - в новых ячейках появляется такой же текст. Да, понятно, что используется reusable cell, но подскажите, пожалуйста, best way чтобы "сохранялись ячейки" используя TableKit?

maxsokolov commented 7 years ago

Привет!

Т.к. ячейки переиспользуются, то после изменения значения в textField его нужно где-то сохранить. Для это можно подписаться на эвенты от UITextField в ячейке:

func textFieldValueChanged(textField: UITextField) {
    TableCellAction(key: "MyAction", sender: self).invoke()
}

Поймать этот эвент в TableRow:

TableRow<NibTableViewCell>(item: $0)
    .on("MyAction") { (_) -> Void in
        // тут сохраняем значение cell.textField.text        
    }
    .on(.configure) { (_) -> Void in
        // тут снова ставим
    }