您的位置:首页 > 移动开发 > IOS开发

present动画效果

2016-06-02 21:06 295 查看
视图切换,有NavigationController的时候一般使用push的方法进行切换页面,没有NavigationController的情况下,一般会使用presentViewController来切换视图并携带切换时的动画。

切换方法如下:

– presentViewController:animated:completion: //弹出,出现一个新视图 可以带动画效果,完成后可以做相应的执行函数经常为nil
– dismissViewControllerAnimated:completion://退出一个新视图 可以带动画效果,完成后可以做相应的执行函数经常为nil


presentModalViewController:animated:completion:使用系统自带四种动画

简单的实现方式:

ViewController2 *vc = [[ViewController2 alloc]init];
[vc setModalTransitionStyle:UIModalTransitionStylePartialCurl];
[self presentViewController:vc animated:YES completion:nil]


系统支持的四种动画:

typedef enum {

UIModalTransitionStyleCoverVertical=0, //默认方式,竖向上推

UIModalTransitionStyleFlipHorizontal, //水平反转

UIModalTransitionStyleCrossDissolve,//隐出隐现

UIModalTransitionStylePartialCurl,//部分翻页效果

} UIModalTransitionStyle;


presentModalViewController:animated:completion: 不用自带的四种动画效果

实现全翻页效果:

ViewController2 *vc = [[ViewController2 alloc]init];
//[vc setModalTransitionStyle:UIModalTransitionStylePartialCurl];
CATransition *animation = [CATransition animation];
animation.duration = 1.0;
animation.timingFunction = UIViewAnimationCurveEaseInOut;
animation.type = @"pageCurl";
//animation.type = kCATransitionPush;
animation.subtype = kCATransitionFromLeft;
[vc setValue:@"value" forKey:@"value"];
[self.view.window.layer addAnimation:animation forKey:nil];
[self presentViewController:vc animated:YES completion:nil];


常见的转换类型(type):

kCATransitionFade               //淡出

kCATransitionMoveIn          //覆盖原图

kCATransitionPush               //推出

kCATransitionReveal          //底部显出来

SubType:

kCATransitionFromRight

kCATransitionFromLeft    // 默认值

kCATransitionFromTop

kCATransitionFromBottom


设置其他动画类型的方法(type):

pageCurl   向上翻一页

pageUnCurl 向下翻一页

rippleEffect 滴水效果

suckEffect 收缩效果,如一块布被抽走

cube 立方体效果

oglFlip 上下翻转效果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  动画 present ios