我在同一个视图控制器上有三个视图,我需要在它们之间切换。哪种方法最好?谢谢
答案 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方法简单。