视图切换,没有NavigationController的情况下,一般会使用presentViewController来切换视图并携带切换时的动画,
其中切换方法如下:
– presentViewController:animated:completion: 弹出,出现一个新视图 可以带动画效果,完成后可以做相应的执行函数经常为nil
– dismissViewControllerAni mated:completion:退出一个新视图 可以带动画效果,完成后可以做相应的执行函数经常为nil
切换动画在压入一个新视图和弹出顶层视图均可以使用,下面只以压入视图为例。
presentModalViewControll er:animated:completion:
使用系统自带四种动画
简单的实现方式:
[page2Controller setModalTransitionStyle:UIModalTransitionStyleFl ipHorizontal];
[self presentModalViewControll er:myNextViewController animated:YES completion:nil];
系统支持的四种动画:
typedef
enum
{
UIModalTransitionStyleCo verVertical=
0
,
//默认方式,竖向上推
UIModalTransitionStyleFl ipHorizontal,
//水平反转
UIModalTransitionStyleCr ossDissolve,
//隐出隐现
UIModalTransitionStylePa rtialCurl,
//部分翻页效果
} UIModalTransitionStyle;
presentModalViewControll er:animated:completion:
实现全翻页效果:
animation.duration =
1.0
;
animation.timingFunction = UIViewAnimationCurveEase InOut;
animation.type =
@"pageCurl"
;
//animation.type = kCATransitionPush;
animation.subtype = kCATransitionFromLeft;
[self.view.window.layer addAnimation:animation forKey:nil];
[self presentModalViewControll er:myNextViewController animated:NO completion:nil];
常見的轉換類型(type):
kCATransitionFade
//淡出
kCATransitionMoveIn
//覆盖原图
kCATransitionPush
//推出
kCATransitionReveal
//底部显出来
SubType:
kCATransitionFromRight
kCATransitionFromLeft
// 默认值
kCATransitionFromTop
kCATransitionFromBottom
设置其他动画类型的方法(type):
pageCurl 向上翻一页
pageUnCurl 向下翻一页
rippleEffect 滴水效果
suckEffect 收缩效果,如一块布被抽走
cube 立方体效果
oglFlip 上下翻转效果