UITableViewCell исчезает после вставки / удаления - PullRequest
0 голосов
/ 01 сентября 2011

У меня есть несколько UITableView в моем проекте, и иногда мне нужно поменять ячейки между ними.Ячейки достаточно сложны, и каждый раз, когда я перемещаю их из одной таблицы в другую, требуется их повторное создание, поэтому я создаю их один раз, сохраняю в массиве и подбираю необходимые ячейки в cellForRowAtIndexPath Перемещение ячеек между таблицами выглядитчто-то вроде этого:

NSIndexPath* pathForMovedCell = [firstTableView indexPathForCell:movedCell];
[firstTableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:pathForMovedCell] withRowAnimation:UITableViewRowAnimationFade];
//There is some delay for show animation and switch between view controllers
[secondTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:pathForMovedCell] withRowAnimation:UITableViewRowAnimationFade];

Этот код работает довольно хорошо, но иногда (всегда, если задержка менее 0,33 секунды) ячейка не отображается на secondTableView.Он обычно вставляется, и будет нарисован, если прокрутить их из видимой области и вернуться назад.Я думаю, что это произойдет, если вставка произойдет до того, как закончится анимация удаления.Если я сделал небольшую задержку, клетки часто исчезают, и я не хочу оставлять большой резерв времени, потому что это выглядит как лаги, поэтому я хочу решить эту проблему правильно.Я пытался добавить [cell setNeedsDisplay] перед возвратом ячейки из cellForRowAtIndexPath, но это не работает.

Есть предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...