Я реализую перетаскивание изображений из другого приложения (например, Safari) в UICollectionView моего собственного приложения.Я создал ячейку-заполнитель со спиннером из раскадровки, чтобы ячейка-заполнитель создавалась, и спиннер вращался при загрузке изображения из URL после перетаскивания.
Моя проблема - эточто спиннер больше не будет крутиться за капли после первого.Эта же ячейка заполнителя была повторно использована, и я уверен, что вращатель прекратил анимацию после первой капли, и поэтому он не вращается для дальнейших капель.
Мой вопрос как я могу получить ссылку на ячейку-заполнитель или просто спиннер, чтобы я мог сделать startAnimating()
со второй капли?
Приведенный ниже код является частью collectionView(_:performDropWith:)
func collectionView(_ collectionView: UICollectionView, performDropWith coordinator: UICollectionViewDropCoordinator) {
let destinationIndexPath = coordinator.destinationIndexPath ?? IndexPath(item: 0, section: 0)
let placeHolderContext = coordinator.drop(item.dragItem,
to: UICollectionViewDropPlaceholder(insertionIndexPath: destinationIndexPath, reuseIdentifier: "dropPlaceholderCell"))
...
let urlContents = try? Data(contentsOf: imageARAndURL["imageURL"] as! URL)
DispatchQueue.main.async {
if let imageData = urlContents {
imageARAndURL["image"] = UIImage(data: imageData) ?? UIImage(named: "imageNotFound")
} else {
imageARAndURL["image"] = UIImage(named: "imageNotFound")
}
placeHolderContext.commitInsertion(dataSourceUpdates: { (insertionIndexPath) in
self.imageARAndURLs.insert(imageARAndURL, at: insertionIndexPath.item)
})
}