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