iOS在同一个viewController的视图之间切换

时间:2012-05-18 14:47:32

标签: cocoa-touch uiviewcontroller

我在同一个视图控制器上有三个视图,我需要在它们之间切换。哪种方法最好?谢谢

4 个答案:

答案 0 :(得分:2)

嗯,我不确定你是否已经明确了这个问题。我猜你想一次一个地展示这些观点。在这种情况下: -

1>您可以在水平UIScrollView中添加视图,其框架大小等于屏幕或您想要的任何区域(宽度应等于屏幕的宽度...一次显示1)以及一个UIPageControl。

2>另一种方法是使用方法: -

   [self.view bringSubViewToFront:yourSubView];

   [self.view sendSubViewToBack:yourSubView ];

根据您的要求。

3>您可以使用动画在视图之间切换。

[UIView animateWithDuration:0.7
                      delay:1.2
                    options: UIViewAnimationCurveEaseOut
                 animations:^{
                 CGRect frame=assignAframeToSwitch;
                     yourView.frame = frame;

                 } 
                 completion:^(BOOL finished){
                     NSLog(@"Done!");
                 }];


                 OR

    _Weak CATransition *transition;
    transition = [CATransition animation];
transition.delegate=self;
    transition.duration = 0.75;
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];

    [[viewcontroller layer] addAnimation:transition forKey:@"transition"];

答案 1 :(得分:1)

CATransition是动画转换的最佳方式

CATransition* trans = [CATransition animation];

[trans setType:kCATransitionPush];

[trans setDuration:0.5];

[trans setSubtype:kCATransitionFromBottom];

// code to change the view//

CALayer *layer = rootViewController.view.layer;

[layer addAnimation:trans forKey:@"Transition"];

希望它有所帮助。

答案 2 :(得分:0)

如果您将此波纹管代码用于过渡动画,则只需隐藏并显示按钮点击事件的视图...

CATransition *animation = [CATransition animation];
    [animation setDelegate:self];   
    [animation setType:kCATransitionFromBottom];
    [animation setDuration:1.0];
    [animation setTimingFunction:[CAMediaTimingFunction functionWithName:
                                  kCAMediaTimingFunctionEaseInEaseOut]];
    [[yourViewControllers layer] addAnimation:animation forKey:@"transitionViewAnimation"];
希望,这对你有所帮助.. :)

答案 3 :(得分:0)

最快速最简单的方法是使用基于内置块的UIView过渡动画。只需查看UIView的文档。它的方式比CATransition方法简单。

相关问题