0

我在同一个 viewController 上有三个视图,我需要在它们之间切换。最好的方法是什么?谢谢

4

4 回答 4

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"];
于 2012-05-18T14:53:02.280 回答
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"];

希望能帮助到你。

于 2012-05-18T14:53:19.373 回答
0

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

于 2012-05-18T15:16:10.377 回答
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"];

希望,这对你有帮助.. :)

于 2012-05-18T14:52:12.720 回答