Настройка: таблица имеет 1 пользовательскую ячейку. Эта ячейка имеет 1 текстовое поле. В каждом текстовом поле вводится номер. ТаблицаView имеет 5 строк (этой ячейки). Если я изменю одно число в любой из ячеек, то все ячейки нужно обновить, я просто звоню tableView.reloadData()
. Изменение текстового поля обрабатывается событием editingDidEnd
.Как обновить UITableView, чтобы UITextField в ячейке не потерял фокус.
Проблема: Я нажимаю любой из текстовых полей и меняю номер. Затем я нажимаю другой textField, чтобы изменить его значение. сначала вызывается editingDidEnd
, все значения пересчитываются и вызывается tableView.reloadData
. Теперь щелчок на втором текстовом поле пропускается, потому что таблица перезагружается.
Я не могу обновить ячейки напрямую, потому что они являются настраиваемыми ячейками, и значение изменяется внутри этого класса. Я не могу обновить ВСЕ ячейки из пользовательского класса ячеек.
Трудный вопрос для объяснения в письменной форме специально для неродного английского говорящего. Если вы поймете вопрос, любые указатели будут оценены :).
Использование Xcode 7.1 и Swift. Спасибо.
Если эти два варианта у меня есть, то я пойду с первым. Второй вариант не является жизнеспособным, так как ячейки - это все таможенные ячейки, и они не знают о значении состояния друг друга и т. Д. Для первого варианта я не знаю, действительно ли ячейка когда-либо получает 'didSelectRowAtIndexPath'. Позвольте мне попытаться вернуться к вам. Спасибо за предложения. – oyalhi
Я могу вызвать reloadData в событии editDidBegin. Тогда это не пропущено. Хотелось бы, чтобы был лучший способ справиться с этим. Все, что я делаю, - это просто щелчок с одного текстового поля на другой. – oyalhi
Второй вариант оказался намного проще реализовать. – oyalhi