ios - UICollectionView UseLayoutToLayoutNavigationTransitions 与不同的数据源

标签 ios ios7 xamarin uicollectionview

我有两个 UICollectionView 对象,它们都有不同的源和委托(delegate)。我想使用 UseLayoutToLayoutNavigationTransitions 实现“照片应用程序式”的过渡外观。

但它不起作用。当我调用 UseLayoutToLayoutNavigationTransitions 时,它会更改布局,但不会更改内容。

第一张图片是第一个 Collection View 。一系列类别以及其中包含的人员。

第二张图片是我希望动画最终呈现的效果。某个类别中的一系列人。

最后一张图片是现在发生的情况。类别刚刚重新排列。

First CollectionView What I'd like the animation to end up with What it looks like now.

最佳答案

看看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/

相关文章:

objective-c - 每天在特定时间安排 UILocalNotification

android - 将 Android Java 代码转换为 Xamarin C#

python - 从 mac 到 iphone 的应用程序

ios - map 中心和屏幕中心不同

ios - 在 MKMapView 中设置当前位置图标下侧

iOS 7 UITableView 问题 - 尝试设置滑动以删除已有单元格的单元格

ios - 如何从YouTube视频中删除视频控件?

ios - 调整图像背景 iOS

javascript - Xamarin不允许加载本地资源文件

android - 是否可以膨胀 CustomLayout : FrameLayout in Xamarin in its own constructors and own class methods?