我有两个UICollectionView对象,它们都有不同的源和委托。我想使用UseLayoutToLayoutNavigationTransitions在过渡时实现“照片应用程序化”的外观。
但是它不起作用。当我调用UseLayoutToLayoutNavigationTransitions时,它会更改布局,但不会更改内容。
第一张图片是第一张收藏视图。一系列类别以及其中包含的人员。
第二张图片是我希望动画制作的最终结果。特定类别中的一系列人。
最后一张照片是现在发生的事情。类别刚刚重新排列。

最佳答案

看看http://www.objc.io/issue-12/collectionview-animations.html

UICollectionViewController实例之间的过渡

部分。

它基本上显示出您必须更改数据源并通过实现导航控制器委托方法来手动委托:

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    if ([viewController isKindOfClass:[FJDetailViewController class]]) {
        FJDetailViewController *dvc = (FJDetailViewController*)viewController;
        dvc.collectionView.dataSource = dvc;
        dvc.collectionView.delegate = dvc;
        [dvc.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:_selectedItem inSection:0] atScrollPosition:UICollectionViewScrollPositionCenteredVertically animated:NO];
    }
    else if (viewController == self){
        self.collectionView.dataSource = self;
        self.collectionView.delegate = self;
    }
}

关于ios - 具有不同数据源的UICollectionView UseLayoutToLayoutNavigationTransitions,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21878687/

10-10 16:41