Я пытаюсь переместить UITableViewCell в абсолютную верхнюю часть таблицы (IndexPath 0,0
). Я пробовал это:
let conversation = conversations[indexPath.row]
conversations.remove(at: indexPath.row)
conversations.insert(conversation, at: 0)
conversationsView.moveRow(at: indexPath, to: IndexPath(row: 0, section: 0))
Это делает то, что я хочу, чтобы он делал: он перемещает ячейку (в настоящее время используется метод didSelectItemAt
для целей тестирования) наверх. Однако визуально это не происходит, поскольку я хочу, чтобы это произошло.
Что происходит сейчас, так это то, что ячейка выдвигается вниз и вставляется сверху. Мне нужна какая-то анимация, которая «перемещает» ячейку из текущей позиции (например, IndexPath 4,0
в новую позицию (IndexPath 0,0
).
Прекрасным и точным примером этого является Facebook. Messenger. Когда вы находитесь в обзоре всех своих разговоров и получаете сообщение в третьем разговоре, ячейка перемещается «магически» и «визуально», как и следовало ожидать. Такое поведение я хочу повторить.
Может быть важно: я использую TextureGroup (AsyncDisplayKit) в своем приложении, но я думаю, что он должен вести себя как UITableView
под капотом.