Немного повозившись, я решил опередить go и реализовать свой собственный API перемещения представлений коллекции, который отражает методы beginInteractiveMovementForItem
, updateInteractiveMovementTargetPosition
и endInteractiveMovement
.
. SO answer полезно проиллюстрировал тип внутренней логики c, которую вам пришлось бы повторно реализовать, и, если это необходимо, вам нужно будет реализовать прокрутку в ячейках перетаскивания и заполнителях. В частности, вы создадите снимок перетаскиваемой ячейки (временно скрывая исходную ячейку) и обновите положение / стиль ячейки временного снимка при ее перетаскивании.
Это куча работы, которую Apple в основном уже позаботился, так что если вам абсолютно не нужен контроль над поведением перетаскивания или свопинга, определенно рекомендую вместо этого использовать iOS 11 API перетаскивания (упомянутый @trapper).
Я обнаружил, что кто-то еще, похоже, подал радар относительно этого поведения, так что, надеюсь, Apple когда-нибудь заметит и исправит!