詳解IOS圖層轉(zhuǎn)場動畫
CAAnimation的子類,用于做轉(zhuǎn)場動畫,能夠?yàn)閷犹峁┮瞥銎聊缓鸵迫肫聊坏膭赢嬓Ч?。iOS比Mac OS X的轉(zhuǎn)場動畫效果少一點(diǎn)
UINavigationController就是通過CATransition實(shí)現(xiàn)了將控制器的視圖推入屏幕的動畫效果
屬性解析:
- type:動畫過渡類型
- subtype:動畫過渡方向
- startProgress:動畫起點(diǎn)(在整體動畫的百分比)
- endProgress:動畫終點(diǎn)(在整體動畫的百分比)
具體代碼:
/* 過渡效果 fade //交叉淡化過渡(不支持過渡方向) kCATransitionFade push //新視圖把舊視圖推出去 kCATransitionPush moveIn //新視圖移到舊視圖上面 kCATransitionMoveIn reveal //將舊視圖移開,顯示下面的新視圖 kCATransitionReveal cube //立方體翻滾效果 oglFlip //上下左右翻轉(zhuǎn)效果 suckEffect //收縮效果,如一塊布被抽走(不支持過渡方向) rippleEffect //滴水效果(不支持過渡方向) pageCurl //向上翻頁效果 pageUnCurl //向下翻頁效果 cameraIrisHollowOpen //相機(jī)鏡頭打開效果(不支持過渡方向) cameraIrisHollowClose //相機(jī)鏡頭關(guān)上效果(不支持過渡方向) */ /* 過渡方向 kCATransitionFromRight kCATransitionFromLeft kCATransitionFromBottom //轉(zhuǎn)場動畫--》是針對某個view的圖層進(jìn)行轉(zhuǎn)場動畫 #import "ViewController.h" #import <QuartzCore/QuartzCore.h> @interface ViewController () { UIView *_lastview; BOOL flag; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; flag=true; UIView *view=[[UIView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)]; view.backgroundColor=[UIColor redColor]; [self.view addSubview:view]; [view release]; _lastview=view; // Do any additional setup after loading the view, typically from a nib. } -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ if(flag){ _lastview.backgroundColor=[UIColor yellowColor]; flag=false; } else{ _lastview.backgroundColor=[UIColor redColor]; flag=true; } //轉(zhuǎn)場動畫--就是對某個view進(jìn)行動畫切換。 //1:如果是控制器之間的切換,其實(shí)window上view進(jìn)行切換 CATransition *transion=[CATransition animation]; //設(shè)置轉(zhuǎn)場動畫的類型 transion.type=@"pageCurl"; //設(shè)置轉(zhuǎn)場動畫的方向 transion.subtype=@"fromLeft"; //把動畫添加到某個view的圖層上 [self.view.layer addAnimation:transion forKey:nil]; }
控制器直接切換動畫
UIApplication *app=[UIApplication sharedApplication]; AppDelegate *dd=app.delegate; MyViewController *my=[[MyViewController alloc] init]; //切換根控制器,其實(shí)把視圖控制器的view在window上切換。所以在轉(zhuǎn)場動畫要作用在window上 dd.window.rootViewController=my; CATransition *trans=[CATransition animation]; trans.type=@"pageCurl"; trans.subtype=@"fromTop"; [dd.window.layer addAnimation:trans forKey:nil]; [my release];
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。
- IOS實(shí)戰(zhàn)之自定義轉(zhuǎn)場動畫詳解
- 詳解iOS開發(fā)中的轉(zhuǎn)場動畫和組動畫以及UIView封裝動畫
- IOS輕松幾步實(shí)現(xiàn)自定義轉(zhuǎn)場動畫
- 實(shí)例講解iOS中的CATransition轉(zhuǎn)場動畫使用
- 深入學(xué)習(xí)iOS7自定義導(dǎo)航轉(zhuǎn)場動畫
- iOS實(shí)現(xiàn)類似格瓦拉電影的轉(zhuǎn)場動畫
- IOS登錄頁面動畫、轉(zhuǎn)場動畫開發(fā)詳解
- iOS swift實(shí)現(xiàn)轉(zhuǎn)場動畫的方法示例
- iOS如何自定義控制器轉(zhuǎn)場動畫push詳解
- iOS實(shí)現(xiàn)轉(zhuǎn)場動畫的3種方法示例
相關(guān)文章
iOS利用NSAttributedString實(shí)現(xiàn)圖文混排效果示例
iOS7以后,因?yàn)門extKit的強(qiáng)大,可以用NSAttributedString很方便的實(shí)現(xiàn)圖文混排(主要是利用了NSTextAttachment),所以下面這篇文章主要給大家介紹了關(guān)于iOS利用NSAttributedString實(shí)現(xiàn)圖文混排效果的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-10-10IOS 屏幕適配方案實(shí)現(xiàn)縮放window的示例代碼
這篇文章主要介紹了IOS 屏幕適配方案實(shí)現(xiàn)縮放window的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04關(guān)于iOS 11的一些新特性適配實(shí)踐總結(jié)
iOS 11 為整個生態(tài)系統(tǒng)的 UI 元素帶來了一種更加大膽、動態(tài)的新風(fēng)格。下面這篇文章主要給大家總結(jié)介紹了關(guān)于iOS 11的一些新特性適配實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-11-11iOS 設(shè)置UILabel的行間距并自適應(yīng)高度的方法
下面小編就為大家?guī)硪黄猧OS 設(shè)置UILabel的行間距并自適應(yīng)高度的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04iOS使用Target如何快速科學(xué)的區(qū)分開發(fā)環(huán)境詳解
這篇文章主要給大家介紹了關(guān)于iOS使用Target如何快速科學(xué)的區(qū)分開發(fā)環(huán)境的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12