iOS - 如何在两个视图之间创建自定义过渡?

时间:2012-03-01 15:58:17

标签: iphone ios ipad animation transition

我正在尝试在两个视图之间创建自定义转换。我们的想法是创造与iPad中的“视频”应用和iPhone上的Twitter相同的效果。 无论如何,我无法找到如何执行。 我试图使用[UIView transitionWithView:...]将nil传递给选项并尝试在动画块中创建图层,但它根本不起作用。 我在WWDC 2010和2011上看过Apple的所有视频都在处理这个主题,但他们从未解释过如何做到这一点! 我也试着在这里找到答案,但没有真正的解释。

感谢您的帮助。

编辑:我想要达到的效果是你可以在这里看到的效果http://www.youtube.com/watch?v=SGzL658OAx4(0:44)

2 个答案:

答案 0 :(得分:2)

我不知道你在谈论哪种效果,但是这里有一些代码可以在scrollView中进行Push转换(你也可以使用该代码进行curl页面转换)。

-(void)performFadeTransitionTo:(GenericScreen*)newNextView 
                     direction:(NSUInteger)direction {
    CATransition *transition = [CATransition animation];
    transition.duration = 0.75;
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

    transition.type = kCATransitionFade;


    transition.subtype = kCATransitionFromRight;

    transition.delegate = self;
    [innerScroll setContentSize:newNextView.frame.size];
    [innerScroll scrollRectToVisible:CGRectMake(0, 0, screenWidth, 10) 
                            animated:NO];

    [innerScroll.layer addAnimation:transition 
                             forKey:nil];

    currentView.hidden = YES;
    newNextView.hidden = NO;
    currentView = newNextView;
}

答案 1 :(得分:0)

如果您想要自定义转换,请创建自己的UIStoryboardSegue子类并覆盖-perform方法。请参阅UIStoryboardSegue reference page,特别是Subclassing Notes。