вы должны сделать только следующее:
Перейдите к , используйте один и тот же CellIdentifier для всех ячеек (производительность! Если вы создадите новый идентификатор для каждой ячейки, он будет работать, но потреблять много памяти). Использование более одного идентификатора ячейки целесообразно только в том случае, если ваши ячейки принципиально отличаются, например, разные пользовательские UITableViewCell-Subclasses.
не добавляйте свои переключатели в качестве подпредставлений (!!!) , вместо этого используйте cell.accessoryView = mySwitch
. если в этой ячейке не должно быть переключателя, обязательно установите cell.accessoryView = nil
, чтобы очистить ячейку для повторного использования. Использование accessoryView для ваших коммутаторов автоматически выполнит всю работу по макету.
когда вы установите для accessoryView значение nil, вы можете продолжать использовать accessoryType для кнопок DetailDisclosure при повторном использовании ячеек!