У меня возникла проблема с тем, как iPhone повторно использует ячейки в таблице. Проблема в том, что реализованные методы класса также «повторно используются», а изменения в одной ячейке применяются к другим ячейкам, которые были повторно использованы. У меня есть индикатор прогресса, который должен обновляться только в одной ячейке после взаимодействия с пользователем, но индикатор прогресса обновляется, а метод также запускается внутри 6-й ячейки. Это происходит и во 2-й и 7-й ячейках.Несколько пользовательских UITableViewCells - ReuseIdentifier и НЕ повторно использовать ячейки
Я знаю, что это плохо для памяти, чтобы не повторно использовать какие-либо ячейки, но в этом приложении в любом случае не более 7 или около того.
CustomTableCell *cell = [tableView dequeueReusableCellWithIdentifier:nil];
не работает. Если я прокручу прочь на секунду и вернусь, ячейка вернется в норму, и все обновленные обновления будут сброшены. Я думаю, клетка уничтожила себя и снова нарисована.
Мне нужно знать, есть ли быстрый, безболезненный способ сделать iPhone просто нарисовать каждую отдельную ячейку отдельно, без повторного использования. Есть ли способ использовать быструю итерацию или цикл for для создания отдельной ячейки для каждой строки в источнике данных?
Пожалуйста, позвольте мне повторить, у меня никогда не будет больше 7 или 8 ячеек в одной таблице на данном viewController.
Наверное, я забыл сказать, что я загружаю эти ячейки из файла nib. Я нашел отличный учебник по этому поводу в iCodeBlog. Ячейки действительно настроены и имеют довольно много информации. Чтобы использовать ваш метод, мне нужно, чтобы layoutSubviews в коде. Я постараюсь завтра, я действительно устал прямо сейчас. – Justin
Вам не придется делать макеты. Единственное различие заключается в том, что вы не создаете их на дебаде, а создаете их раньше времени. cellForRowAtIndexPath просто просит, чтобы вы вернули ячейку, и это то, что вы делаете. – coneybeare
Вы не можете буквально называть initWithStyle: reuseIdentifier: initializer. Вы будете распределять ячейки точно так же, как если бы вы выбрали dequeueReusableCellWithIdentifier: return nil. Но главное, * не * вызывать dequeueReusableCellWithIdentifier :. –