Не удается получить доступ к свойству sourceIndexPath для UIDragItem - PullRequest
0 голосов
/ 29 января 2020

Я создаю viewcontroller, который содержит два отдельных UICollectionViews. Я позволяю перетаскивать ячейки из одного UICollectionView в другой. В методе

-(void)collectionView:(UICollectionView *)collectionView performDropWithCoordinator:(id<UICollectionViewDropCoordinator>)coordinator;

я получаю перетаскиваемый элемент, подобный этому

UIDragItem *item = [coordinator.items objectAtIndex:0];

Чтобы определить, произошло ли перетаскивание из того же UICollectionView, я хочу проверить свойство sourceIndexPath в item объект, как описано в https://developer.apple.com/documentation/uikit/uicollectionviewdropitem/2897392-sourceindexpath?language=objc К сожалению, XCode постоянно говорит мне Property 'sourceIndexPath' not found on object of type 'UIDragItem *' Когда я распечатываю item, я ясно вижу, что свойство доступно, значение ноль здесь не имеет значения, это указывает на источник перетаскивания.

<_UICollectionViewDropItem:0x60000189a760 previewSize = {50, 50}; sourceIndexPath = (nil); dragItem = <_UIDropItem: 0x60000240a0a0>>

Я действительно застрял здесь, и мне кажется, что я забыл реализовать какой-то протокол, но дважды проверил трижды, и все, кажется, хорошо. Спасибо!

1 Ответ

0 голосов
/ 29 января 2020

Пожалуйста, попробуйте https://cocoapods.org/pods/DragDropiOS Это поможет вам.

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let model = collectionModels[indexPath.item]

        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: DragDropCollectionViewCell.IDENTIFIER, for: indexPath) as! DragDropCollectionViewCell

        cell.updateData(model)

        return cell
    }
...