Есть ли способ получить UICollectionViewCell, созданный UICollectionViewDropCoordinator.drop (_: to :)? - PullRequest
0 голосов
/ 20 октября 2018

Я реализую перетаскивание изображений из другого приложения (например, 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)
        })
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...