iOS от Apple TableView
и повторное использование сотовой связи убивает меня.Я искал, искал и учился, но не могу найти хорошие документы или хорошие ответы.Проблема заключается в том, что когда TableView
повторно использует ячейки, такие вещи, как «Галочки» (принадлежность ячейки), установленные в выбранной ячейке, повторяются в ячейках, расположенных ниже в табличном представлении.Я понимаю, что повторное использование ячеек происходит из-за ограничений памяти, но если у вас есть список, скажем, с 50 элементами, и он начинает устанавливать дополнительные галочки там, где они не нужны, это делает все усилия бесполезными.
Все, что я хочу сделать, это установить галочку в ячейке, которую я выбрал.Я попробовал это, используя мой собственный класс ячеек и стандартные ячейки, сгенерированные классом TableView котельной пластины, но в итоге он всегда один и тот же.
У Apple даже есть пример проекта TouchCell, который можно загрузить сЦентр разработки, который должен показывать другой способ установки галочки с помощью пользовательской ячейки с элементом управления изображением слева.Проект использует объект словаря для источника данных вместо изменяемого массива, поэтому для каждого элемента есть строковое значение и проверенное значение bool.Предполагается, что это проверенное значение bool устанавливает галочку, чтобы можно было отслеживать выбранные элементы.Этот пример проекта также отображает это глупое поведение, как только вы заполните TableView 15+ ячейками.Повторное использование ячеек начинает устанавливать нежелательные галочки.
Я даже пытался экспериментировать с использованием действительно уникального идентификатора ячейки для каждой ячейки.Поэтому вместо того, чтобы в каждой ячейке было что-то вроде @ "Acell", я использовал статическое int, приводил к строке, чтобы ячейки получали @ "cell1", @ "cell2" и т. Д. Во время тестирования я мог видеть, что сотни новыхгенерируется при прокрутке, даже если в таблице было только 30 элементов.
Исправлена проблема с повторением галочки, но я подозреваю, что использование памяти слишком велико.
Как будто создаются ячейки, которые в данный момент не находятся в видимой области таблицыснова и снова, когда они прокручиваются обратно в поле зрения.
Кто-нибудь придумал элегантное решение этого раздражающего поведения?