視圖切換偶摔,沒有NavigationController的情況下,一般會使用presentViewController來切換視圖并攜帶切換時的動畫则果,
其中切換方法如下:
– presentViewController:animated:completion: 彈出厉亏,出現(xiàn)一個新視圖 可以帶動畫效果,完成后可以做相應(yīng)的執(zhí)行函數(shù)經(jīng)常為nil
– dismissViewControllerAnimated:completion:退出一個新視圖 可以帶動畫效果枫慷,完成后可以做相應(yīng)的執(zhí)行函數(shù)經(jīng)常為nil
切換動畫在壓入一個新視圖和彈出頂層視圖均可以使用,下面只以壓入視圖為例浪规。
presentModalViewController:animated:completion:使用系統(tǒng)自帶四種動畫
簡單的實現(xiàn)方式:
[page2Controller setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[self presentModalViewController:myNextViewController animated:YES completion:nil];
系統(tǒng)支持的四種動畫:
typedef enum {
UIModalTransitionStyleCoverVertical=0, //默認(rèn)方式或听,豎向上推
UIModalTransitionStyleFlipHorizontal, //水平反轉(zhuǎn)
UIModalTransitionStyleCrossDissolve,//隱出隱現(xiàn)
UIModalTransitionStylePartialCurl,//部分翻頁效果
} UIModalTransitionStyle;
presentModalViewController:animated:completion: 不用自帶的四種動畫效果
實現(xiàn)全翻頁效果:
CATransition *animation = [CATransition animation];
animation.duration = 1.0;
animation.timingFunction = UIViewAnimationCurveEaseInOut;
animation.type = @"pageCurl";
//animation.type = kCATransitionPush;
animation.subtype = kCATransitionFromLeft;
[self.view.window.layer addAnimation:animation forKey:nil];
[self presentModalViewController:myNextViewController animated:NO completion:nil];
常見的轉(zhuǎn)換類型(type):
kCATransitionFade //淡出
kCATransitionMoveIn //覆蓋原圖
kCATransitionPush //推出
kCATransitionReveal //底部顯出來
SubType:
kCATransitionFromRight
kCATransitionFromLeft // 默認(rèn)值
kCATransitionFromTop
kCATransitionFromBottom
設(shè)置其他動畫類型的方法(type):
pageCurl 向上翻一頁
pageUnCurl 向下翻一頁
rippleEffect 滴水效果
suckEffect 收縮效果,如一塊布被抽走
cube 立方體效果
oglFlip 上下翻轉(zhuǎn)效果