Animation 苹果播客应用程序中的UIViewControllerTransistion

Animation 苹果播客应用程序中的UIViewControllerTransistion,animation,ios7,uicollectionview,podcast,Animation,Ios7,Uicollectionview,Podcast,我对iOS7和自定义UiViewControllerTransistion有一个问题。我想在全屏UiCollectionView和模式视图iPad之间进行自定义转换,并在collectionView上显示所选项目的详细信息。动画应该是这样的:当您点击集合中的某个项目时,该项目将缩放到具有详细信息的模态视图的最终位置,当您点击模态视图外部时,模态将自动关闭。动画应该是一种反向动画。似乎模态视图会退回到UICollectionView中的项。过渡就像iPad上的苹果播客应用程序一样,当你选择一个播客

我对iOS7和自定义UiViewControllerTransistion有一个问题。我想在全屏UiCollectionView和模式视图iPad之间进行自定义转换,并在collectionView上显示所选项目的详细信息。动画应该是这样的:当您点击集合中的某个项目时,该项目将缩放到具有详细信息的模态视图的最终位置,当您点击模态视图外部时,模态将自动关闭。动画应该是一种反向动画。似乎模态视图会退回到UICollectionView中的项。过渡就像iPad上的苹果播客应用程序一样,当你选择一个播客时,它会以一种模式视图向你显示播客的详细信息。我希望你能理解我的意思:

因此,我不知道这是否只是一个自定义转换,或者我是否需要一个自定义uicollectionviewlayout。如果你能解释一下我该怎么做就好了


xxAvarlonxx

您必须获取点击的collectionViewItem的帧。这是这样做的

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
    UICollectionViewLayoutAttributes *attributes = [collectionView layoutAttributesForItemAtIndexPath:indexPath];
    CGRect cellRect = [attributes frame];
}
然后启动viewcontroller,将其帧设置为单元格的帧,然后使用-animateWithDuration:completion:制作动画

事实上,即使在iOS6中我也这么做了


我希望这会有帮助。

是的,这接近我目前的最佳想法。为AnimationController提供所选项目的帧,然后制作toView的UIview快照,首先为他提供所选EdItem的帧,然后开始制作真实toViewFinalFrame的动画。现在我需要知道如何获得所选项目的框架。谁知道呢?集合视图?集合视图中的节?有人有主意吗?好的,看起来很简单。您只需要选定的单元格,并且可以从中获取框架cell.frame。哇,当它工作的时候,我会很惊讶它是多么的简单:不,cell.frame不会给你在屏幕上的正确位置!请使用LayoutAttribute:-好的……很高兴知道:那么我将尝试您的解决方案。谢谢是的,听起来很棒,让我了解最新情况!如果我的回答确实帮助你,请考虑接受;