Итак, недавно у меня возникла (как мне кажется,) очень похожая проблема, и ни один из опубликованных ответов не помог мне, извините, сказать.
Моя проблема заключалась в том, что я намеренно изменил размер ипереставил UITableView при вращении, и я сделал это программно.Ячейки таблицы в портретной ориентации занимали ширину вида, а в альбомной ориентации были сделаны несколько выше, но менее широкими.Затем я переставил элементы ячейки в зависимости от ориентации, к которой мы пришли.
При запуске приложения первый просмотр таблицы прошел нормально.Затем я повернулся и обнаружил, что у меня, по-видимому, есть два экземпляра некоторых элементов, и они, по-видимому, были там, где клетки были видны в первой таблице.Поворот назад повредил исходную таблицу ориентации с элементами из предыдущей таблицы.
Я пробовал все применимые ответы выше, пока не посмотрел поближе на код cellForRowAtIndexPath:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
Я понимаюПовторное использование ячеек - отличная идея, и все, но мне действительно не нужно было сохранять (как и в preserve) какие-либо ячейки, и я хотел, чтобы все они были яркими, блестящими и новыми после каждого вращения.
РЕДАКТИРОВАТЬ: В моемВ собственном приложении у меня будет максимум 20-30 строк, так как лично мне не нравятся очень длинные таблицы.Если бы для определенного запроса было возвращено много строк, у меня было бы несколько доступных фильтров, чтобы помочь им разобраться, какие строки им нужны.Если вы собираетесь отображать множество строк, то снятие их с очереди может вызвать нежелательное влияние на производительность.
Все, что я сделал, это закомментировал if и theследующая скобка, и ячейки моего стола обновились точно так, как я этого хотел:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
//if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
//}
Извинения за вафлю и поздний ответ на старый вопрос.
Бен.
Вафли и сливки или сироп.