【问题标题】:iOS - How can I create a custom transition between two views?iOS - 如何在两个视图之间创建自定义过渡?
【发布时间】:2012-03-20 03:21:24
【问题描述】:

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

感谢您的帮助。

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

【问题讨论】:

    标签: iphone ios ipad animation transition


    【解决方案1】:

    我不知道您说的是哪种效果,但这里有一些代码可以在 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;
    }
    

    【讨论】:

    • 效果就是你在这个视频link (0:44) 中看到的效果。您认为我可以使用您的代码来执行此转换吗?
    • 不,你不能做这个效果。您需要使用 coreAnimation 制作显式动画才能获得这种复杂的过渡效果。
    【解决方案2】:

    如果您想要自定义转换,请创建您自己的 UIStoryboardSegue 子类并覆盖 -perform 方法。请参阅UIStoryboardSegue reference page,尤其是子类化注释。

    【讨论】:

      猜你喜欢
      • 2021-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-10
      • 2016-07-30
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      相关资源
      最近更新 更多