Значение UISwitch перерабатывается в UITableView

#iphone #uitableview #uiswitch

#iPhone #uitableview #uiswitch

Вопрос:

У меня есть UITableView с пользовательской ячейкой, которую я создал. В каждую пользовательскую ячейку я добавил UISwitch. Мой tableview имеет высоту всего 100 пикселей. Когда у меня есть 6 или более ячеек, кажется, что он начинает перерабатывать пользовательские переключатели в ячейках, поэтому, если я изменю значение переключателя в ячейке 0, переключатель в ячейке 5 также изменит свое значение, чтобы оно соответствовало значению ячейки 0. Есть ли способ управлять памятью, чтобы этого не происходило?

Спасибо.

Комментарии:

1. можете ли вы показать какой-нибудь код того, как вы добавляете uiswitch в свою пользовательскую ячейку?

2. Я создал пользовательскую ячейку в IB

3. Как вы различаете переключатели? По тегу? Можете ли вы показать этот код?

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

5. Нам нужно увидеть ваш метод cellForRowAtIndexPath. Скорее всего, вы не устанавливаете свойство switch для ячейки, удаленной из очереди.

Ответ №1:

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

 cell.cellSwitch.tag = indexPath.row;
  

Затем я смог вернуться и сослаться на правильный переключатель в своем коде.