偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

iPhone應(yīng)用程序之CoreAnimation應(yīng)用和使用方法

移動(dòng)開發(fā) iOS
本文介紹的是CoreAnimation的應(yīng)用和使用方法,通過(guò)本文的學(xué)習(xí),我們可以清楚的去了解CoreAnimation,先來(lái)看詳細(xì)內(nèi)容。

iPhone應(yīng)用程序之CoreAnimation應(yīng)用和使用方法是本文要介紹的內(nèi)容,CoreAnimation是蘋果對(duì)用戶界面動(dòng)畫的封裝,它的framework是QuartzCore.framework。使用時(shí)需要將這個(gè)庫(kù)添加的工程,我們一起來(lái)看內(nèi)容詳解。

1、CALayerCALayer的絕大多數(shù)的屬性都支持動(dòng)畫,對(duì)這些值直接進(jìn)行設(shè)置會(huì)隱式的調(diào)用動(dòng)畫效果,只不過(guò)動(dòng)畫的持續(xù)時(shí)間(duration)較 短,幾乎看不出效果。如果要達(dá)到明顯的動(dòng)畫效果,就需要顯式的調(diào)用動(dòng)畫。

常用的屬性:

  1. @property CGRect bounds;   
  2. @property CGPoint position;   
  3. @property CATransform3D transform; 

如何調(diào)動(dòng)畫?

  1. - (void)addAnimation:(CAAnimation *)anim forKey:(NSString *)key 

其中anim是自己創(chuàng)建的動(dòng)畫對(duì)象,繼承于CAAnimation。key是動(dòng)畫的鍵,一般是nil,或自己設(shè)定的值,意義不大。

2、CAAnimationCAAnimation是所有動(dòng)畫類的基類,一般不會(huì)直接使用。它提供給所有子類的一個(gè)很有用的屬性是

  1. @property(retain) CAMediaTimingFunction *timingFunction; timingFunction 

是一個(gè)CAMediaTimingFunction對(duì)象,一般這樣創(chuàng)建:

  1. [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];  
  2.  kCAMediaTimingFunctionEaseIn 

可以替換為一下值

  1. :NSString * const kCAMediaTimingFunctionLinear;  
  2.  NSString * const kCAMediaTimingFunctionEaseIn;  
  3.  NSString * const kCAMediaTimingFunctionEaseOut;  
  4.  NSString * const kCAMediaTimingFunctionEaseInEaseOut; 

3、CABaseAnimation基本的動(dòng)畫,直接作用于CALayer的對(duì)象的各種屬性。 下面是讓一個(gè)layer由藍(lán)色漸漸變?yōu)橥该鞯男Ч麆?dòng)畫

  1. CABasicAnimation *ani = [CABasicAnimation animationWithKeyPath:@"backgroundColor"];  
  2.  ani.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];  
  3.  ani.fromValue = [UIColor blueColor].CGColor;  
  4.  ani.toValue = [UIColor clearColor].CGColor;  
  5. ani.duration = 3;   
  6. [view1.layer addAnimation:ani forKey:@"ani1"]; 

指定要進(jìn)行動(dòng)畫的屬性,比如上例中要對(duì)layer的backgroundColor屬性進(jìn)行變化。

  1. + (id)animationWithKeyPath:(NSString *)path;  

path指定要變化的屬性路徑,比如@“bounds”,@“bounds.size.width”等。

這三個(gè)屬性只需要提供1個(gè)或2個(gè)就可以了

  1. :@property(retain) id fromValue, toValue, byValue; 

具體的作用是: 如果有fromValue和toValue,那么動(dòng)畫就是由fromValue變化到toValue。

 如果有fromValue和byValue,那么動(dòng)畫就是由fromValue變化到fromValue+byValue。

 如果只有toValue,那么動(dòng)畫就是由當(dāng)前的值變化到toValue。 如果只有byValue,那么動(dòng)畫就是由當(dāng)前的值變化到當(dāng)前值+byValue。

你可以這么想像:當(dāng)CALayer對(duì)象中添加了一個(gè)動(dòng)畫后,系統(tǒng)會(huì)開啟一個(gè)定時(shí)器,不斷刷新layer的屬性的值,其值由fromValue和toValue根據(jù)一定的插值算法來(lái)計(jì)算出來(lái)的。 只是想像,layer的屬性在動(dòng)畫過(guò)程中并沒(méi)有改變,這些顯示效果都是由GPU完成的,不會(huì)改變layer的屬性值,如果必要你必須自 己設(shè)定layer的屬性。

4、CAKeyframeAnimation關(guān)鍵幀動(dòng)畫 有時(shí)你或許需要一個(gè)非固定方向的動(dòng)畫,比如讓一個(gè)layer先向右移動(dòng)100個(gè)像素,然后在向下移動(dòng)100個(gè)像素。這時(shí)就可以用關(guān)鍵 幀動(dòng)畫。

  1. CAKeyframeAnimation *ani = [CAKeyframeAnimation animationWithKeyPath:@"position"];   
  2. ani.values = [NSArray arrayWithObjects:  
  3. NSValue valueWithCGPoint:CGPointMake(100,200)],   
  4. [NSValue valueWithCGPoint:CGPointMake(200,200)],  
  5.  [NSValue valueWithCGPoint:CGPointMake(200,300)], nil];  
  6. ani.duration = 3; [view1.layer addAnimation:ani forKey:@"ani2"]; 

6、UIView的動(dòng)畫支持UIView可以直接支持view的動(dòng)畫,可以影響多個(gè)View。

動(dòng)畫是線性變化的,默認(rèn) 動(dòng)畫開始變化慢,越來(lái)越快 動(dòng)畫開始變化快,越來(lái)越慢 慢入慢出,先慢再快,最后又慢,比較常用

  1. [UIView beginAnimations:nil context:nil];   
  2. [UIView setAnimationDuration:0.3];   
  3. //一些view的操作  
  4. view.frame = xxx; [UIView commitAnimations]; 

小結(jié):iPhone應(yīng)用程序之CoreAnimation應(yīng)用和使用方法的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-07-26 16:33:56

iPhone Delegate

2011-08-10 17:30:50

iphoneThree20

2011-07-21 10:47:37

iPhone Cocoa 委托

2011-08-10 16:08:02

iPhoneProtocol協(xié)議

2011-08-08 14:07:49

iPhone開發(fā) 字體

2011-08-03 17:27:40

iPhone UIScrollVi

2012-04-26 13:48:56

iPhone應(yīng)用發(fā)布Ad Hoc

2011-08-03 16:45:09

iPhone APNS 推送通知

2011-07-26 09:41:23

iPhone xcode Mac OS X

2011-07-20 15:58:58

iPhone 應(yīng)用程序 生命周期

2010-08-27 10:41:41

iPhone核心應(yīng)用程序

2023-08-07 09:01:42

Prism 庫(kù)開源

2011-07-19 14:36:32

iPhone

2011-07-21 15:56:32

iPhone 截屏

2011-08-05 13:49:53

iPhone 應(yīng)用 開發(fā)

2011-08-12 14:54:45

iPhone委托

2011-07-27 17:30:40

iPhone Locate 定位

2011-07-26 11:13:15

iPhone PXL

2011-08-10 09:31:33

開發(fā)iPhone應(yīng)用程

2011-07-28 13:59:40

iPhone App
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)