Я создаю 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>>
Я действительно застрял здесь, и мне кажется, что я забыл реализовать какой-то протокол, но дважды проверил трижды, и все, кажется, хорошо. Спасибо!