Используйте мой код для преобразования dataURI в blob. Это проще и чище, чем другие.
function dataURItoBlob(dataURI) {
var arr = dataURI.split(','), mime = arr[0].match(/:(.*?);/)[1];
return new Blob([atob(arr[1])], {type:mime});
}
Посмотрев на эту функцию, я могу себе представить, что сбой, который вы видите, - это CollectionView, прокручивающий вперед, а затем резиновый / телепортирующийся назад.
Я думаю, это может произойти, потому что вы пытаетесь запустить две анимации одновременно. Ваша первая анимация, UIView.animate (), анимирует прокрутку к новому вставленному элементу; однако, когда вы вызываете collectionView? .scrollToItem (), вы также анимируете это (см. ниже)
self.collectionView?.scrollToItem(..., animated: true) <--
. Вероятно, поэтому оно не работает; Вы пытаетесь оживить анимацию. Попробуйте установить для animated значение false и посмотрите, исправит ли это.