我有两个 UICollectionView
对象,它们都有不同的源和委托(delegate)。我想使用 UseLayoutToLayoutNavigationTransitions 实现“照片应用程序式”的过渡外观。
但它不起作用。当我调用 UseLayoutToLayoutNavigationTransitions
时,它会更改布局,但不会更改内容。
第一张图片是第一个 Collection View 。一系列类别以及其中包含的人员。
第二张图片是我希望动画最终呈现的效果。某个类别中的一系列人。
最后一张图片是现在发生的情况。类别刚刚重新排列。
最佳答案
看看http://www.objc.io/issue-12/collectionview-animations.html在
Transitions Between UICollectionViewController Instances
部分。
它基本上告诉您,您必须通过实现导航 Controller 委托(delegate)方法来手动更改数据源和委托(delegate):
- (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/