Некоторая помощь будет принята здесь с благодарностью!
У меня есть пользовательская ячейка UITableView, состоящая из изображения (зеленого, оранжевого или красного) и двух меток с разными размерами шрифта. UITableView управляется NSMutableArray объектов.
UITableView разделен на три раздела: первый раздел содержит все ячейки с красным изображением, второй раздел с оранжевым, третий раздел с зеленым.
Я реализовал возможность переставлять ячейки в UITableView, позволяя пользователю перетаскивать, скажем, элемент с красным изображением из красной секции в оранжевую секцию. Это перетаскивание прекрасно работает, и основные данные обновляются правильно. Я знаю, что это так, потому что, если я выберу ячейку, я перейду к ее подробному виду и данные обновятся.
Тем не менее, UITableView не обновляется, пока я не укажу детали (или не выйду из приложения) и не вернусь! Он также обновляется, если я прокручиваю поврежденную ячейку вне поля зрения и снова в поле зрения, поэтому массив четко содержит правильные данные. Я просто не могу вызвать обновление представления!
После кода я попробовал следующее для изменения базовых данных в moveRowAtIndexPath:
[self.tableView reloadData];
Однако это вызывает исключение. В Apple Language Reference фактически говорится, что reloadData нельзя вызывать при вставке, удалении или анимации, что, конечно, я и делаю. Кроме того, пытаясь просто обновить ячейку с
[self setNeedsDisplay];
не работает (хотя и не падает).
Любые идеи о том, как я могу обновить UITableView? Я не могу найти afterMoveHasBeenCompleted: метод или что-то еще, поэтому, если я не могу вызвать reloadData во время моего moveRowAtIndexPath: метод, тогда где я могу его вызвать?!