Вопрос

В моем приложении для iPhone есть страница настроек, на которой пользователь может вводить текст в несколько текстовых полей.Текстовые поля — это все ячейки таблицы.Проблема, которую я заметил, заключается в том, что когда поле прокручивается за пределы экрана телефона, оно теряет значение, которое в данный момент находится в текстовом поле.

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

У меня есть событие, привязанное к тому, когда пользователь нажимает кнопку «Далее/Готово» на клавиатуре (didFinishEditingField :), чтобы обновить значение в контроллере таблицы, но если он не нажмет это и просто коснется другого поля, которое не будет т сработало.

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

Редактировать: Для пояснения причина, по которой я использовал UITextFields внутри таблицы и ячеек, а не в одном представлении, заключается в том, что я хотел, чтобы она выглядела как типичная страница настроек с удаленным фоном и группами входных данных.

Это было полезно?

Решение

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

Другие советы

Вы повторно используете клетки?Более того, для создания исходной ячейки вы используете dequeueReusableCellWithIdentifier:?Я пробовал нечто подобное, и оказалось, что повторное использование ячеек с последующим добавлением к ним редактируемых полей дает неожиданные результаты.

У меня была та же проблема, и я не удалял ячейки из очереди.Подтверждено, что уникальная идентификация клеток работает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top