嵌入到PageViewController中时的CollectionView拖放

问题描述

当拖放操作与嵌入在UIPageViewController中的UICollectionView一起使用时,委托在分页时立即触发didExit

  1. 开始拖放手势
  2. 转到新视图
  3. CollectionDropDelegate立即触发:
  • newCV.didEnter
  • oldCV.didExit
  • newCV.didExit
从未调用

newCV.didUpdate。如果我们在这一点放手,它会取消。我的PageViewController不是全屏显示,因此如果将拖动移到外部并移回,我仍然可以在分页后执行拖放操作,但这是一种糟糕的用户体验。

注意:

  • 不使用UICollectionViewController
  • CollectionView已添加viewDidLoad的UIViewController层次结构中

有什么想法吗?

解决方法

我能够通过切换@Test void testGetJson { doThrow(new RepositoryException()).when(tidayJsonItemWriter).dump(Mockito.any(),Mockito.any(),Mockito.any()); ctx.addModelsForClasses(Aem.class); ctx.getJson(node,tidyJosnItemWriter); } 来解决此问题。弄清楚在生命周期中的哪个位置有一定挑战性,最终我最终使用了UIPageViewControllerDelegate collectionView.isUserInteractionEnabled

因此,在我的didFinishAnimating...中,我设置了ContentViewController.viewDidLoad,然后在委托中,我需要有条件地启用/禁用集合视图。

collectionView.isUserInteractionEnabled = false