изображение возвращается к оригиналу при прокрутке uitableview - PullRequest
1 голос
/ 17 января 2012

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

Этот вопрос очень похож на этот:

Сохранить изображение ячейки после прокрутки UITableView

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

Заранее спасибо!=)

Ответы [ 2 ]

4 голосов
/ 17 января 2012

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

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

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

0 голосов
/ 17 января 2012

Я предполагаю, что флажок в ячейке табличного представления изменяет состояние на выбранное, потому что пользователь выбрал его. Вы не должны использовать элементы пользовательского интерфейса, чтобы поддерживать состояние вашего приложения. То есть, когда пользователь нажимает флажок, вы должны использовать это событие, чтобы как-то отразить это изменение состояния в объекте данных в вашем приложении. Затем, когда эту ячейку необходимо отобразить снова, вы настраиваете ее в состояние, которое вы ранее сохранили. Это учитывает такие вещи, как повторное использование ячеек, просмотр разгрузки и является хорошей привычкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...