【问题标题】:UIView transitionsUIView 过渡
【发布时间】:2012-10-28 02:42:23
【问题描述】:

我正在为我的不同视图使用 ViewControllers,这就是我目前从一个页面切换到另一个页面的方式:

- (IBAction)switchToSecondPage:(id)sender 
{
    SecondPage * secondPage = [[SecondPage alloc] initWithNibName:nil bundle:nil];
    [self presentViewController: secondPage animated:YES completion:NULL];
}

这是从屏幕底部出现的典型新视图。我可以用它来改变过渡风格,但我只有几个选择可供选择,而且没有一个是好的。

secondPage.modalTransitionStyle = UIModalTransitionStylePartialCurl;

我正在寻找与您获得的原始转换相似的转换(页面从底部向上滑动)。所以我想要“从顶部向下滑动”和“从左/右滑动”。有什么办法可以做到这一点。我看到各种各样的应用程序都在这样做,但我没有成功找到任何东西。

【问题讨论】:

    标签: iphone objective-c ios xcode transition


    【解决方案1】:

    一种方法是,

      [self.view addSubview:secondPage.view];
      secondPage.view.frame = frameOutSideCurrentView;//Frame is set as outside the screen
      [UIView animateWithDuration:1.0f
                         animations:^{
                             //actual frame needed with an animation.
                             secondPage.view.frame = originalFrame;
                         }
                         completion:^(BOOL finished) { 
                            //if you need to anything specific once the animation is completed.
                         }];
    

    另一种方法是通过using thisTransitionController 是自定义实现,有助于做到这一点。如果您遇到上述代码的问题,请使用此实现中的类别方法。有一些方法,例如,

    - (id)initWithViewController:(UIViewController *)viewController;
    - (void)transitionToViewController:(UIViewController *)viewController
                         withOptions:(UIViewAnimationOptions)options;
    

    可以用来实现这一点。

    【讨论】:

    • 我在 frameOutsideCurrentView 和 originalFrame 中添加了什么,我尝试过的所有内容都会出错。
    • 对于frameOutsideCurrentView,设置一个在当前屏幕框架之外的框架为CGRectMake(-320, 0, 320, 480);设置 originalFrame 为 CGRectMake(0, 0, 320, 480);这应该是从左到右的动画。
    • 模拟器运行,但是当我点击按钮时没有任何反应。另外,这不只是使用相同的视图吗?我的第二页打开了一个完全不同的 UIViewController 视图。
    • 更新了答案。检查框架是否设置正确。否则我建议你使用gist.github.com/1394947。检查这个如何使用它,stackoverflow.com/a/8248284/1730272
    • @SinaYamani,那是因为您的 secondPage 即将发布。您可能必须将其声明为 @property 并将其用作 self.secondPage 而不仅仅是 secondPage。
    猜你喜欢
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多