iPhone開(kāi)發(fā)應(yīng)用之UIView中動(dòng)畫(huà)屬性分析
iPhone開(kāi)發(fā)應(yīng)用之UIView中動(dòng)畫(huà)屬性分析是本文要介紹的內(nèi)容,主要是來(lái)講解iphone中動(dòng)畫(huà)的屬性,我們可以從中很詳細(xì)的了解到動(dòng)畫(huà)中的每一個(gè)值的屬性,來(lái)看詳細(xì)內(nèi)容。
areAnimationsEnabled
返回一個(gè)布爾值表示動(dòng)畫(huà)是否結(jié)束。
- + (BOOL)areAnimationsEnabled
返回值
如果動(dòng)畫(huà)結(jié)束返回YES,否則NO。
beginAnimations:context:
開(kāi)始一個(gè)動(dòng)畫(huà)塊
- + (void)beginAnimations:(NSString *)animationID context:(void *)context
參數(shù)
animationID
動(dòng)畫(huà)塊內(nèi)部應(yīng)用程序標(biāo)識(shí)用來(lái)傳遞給動(dòng)畫(huà)代理消息-這個(gè)選擇器運(yùn)用setAnimationWillStartSelector:和setAnimationDidStopSelector: 方法來(lái)設(shè)置。
context
附加的應(yīng)用程序信息用來(lái)傳遞給動(dòng)畫(huà)代理消息-這個(gè)選擇器使用setAnimationWillStartSelector: 和setAnimationDidStopSelector: 方法。
討論
這個(gè)值改變是因?yàn)樵O(shè)置了一些需要在動(dòng)畫(huà)塊中產(chǎn)生動(dòng)畫(huà)的屬性。動(dòng)畫(huà)塊可以被嵌套。如果在沒(méi)有在動(dòng)畫(huà)塊中調(diào)用那么setAnimation類(lèi)方法將什么都不做。使用 beginAnimations:context:來(lái)開(kāi)始一個(gè)動(dòng)畫(huà)塊并用commitAnimations類(lèi)方法來(lái)結(jié)束一個(gè)動(dòng)畫(huà)塊。結(jié)束一個(gè)動(dòng)畫(huà)塊并開(kāi)始當(dāng)他在動(dòng)畫(huà)塊外時(shí)。
- + (void)commitAnimations
如果當(dāng)前的動(dòng)畫(huà)塊是最外層的動(dòng)畫(huà)塊,當(dāng)應(yīng)用程序返回到循環(huán)運(yùn)行時(shí)開(kāi)始動(dòng)畫(huà)塊。動(dòng)畫(huà)在一個(gè)獨(dú)立的線(xiàn)程中所有應(yīng)用程序不會(huì)中斷。使用這個(gè)方法,多個(gè)動(dòng)畫(huà)可以被實(shí)現(xiàn)。查看setAnimationBeginsFromCurrentState:來(lái)了解如果開(kāi)始一個(gè)動(dòng)畫(huà)當(dāng)另外一個(gè)動(dòng)畫(huà)在播放的時(shí)候。
layerClass
返回類(lèi)用來(lái)創(chuàng)建這一個(gè)本類(lèi)的layer實(shí)例對(duì)象。
- + (Class)layerClass
返回值
一個(gè)用來(lái)創(chuàng)建視圖layer的類(lèi)重寫(xiě)子類(lèi)來(lái)指定一個(gè)自定義類(lèi)用來(lái)顯示。當(dāng)在創(chuàng)建視圖layer時(shí)候調(diào)用。默認(rèn)的值是CALayer類(lèi)對(duì)象。泠云工作室
setAnimationBeginsFromCurrentState
設(shè)置動(dòng)畫(huà)從當(dāng)前狀態(tài)開(kāi)始播放。
- + (void)setAnimationBeginsFromCurrentState:(BOOL)fromCurrentState
參數(shù)
fromCurrentState
YES如果動(dòng)畫(huà)需要從他們當(dāng)前狀態(tài)開(kāi)始播放。否則為NO。
討論
如果設(shè)置為YES那么當(dāng)動(dòng)畫(huà)在運(yùn)行過(guò)程中,當(dāng)前視圖的位置將會(huì)作為新的動(dòng)畫(huà)的開(kāi)始狀態(tài)。如果設(shè)置為NO,當(dāng)前動(dòng)畫(huà)結(jié)束前新動(dòng)畫(huà)將使用視圖最後狀態(tài)的位置作為開(kāi)始狀態(tài)。這個(gè)方法將不會(huì)做任何事情如果動(dòng)畫(huà)沒(méi)有運(yùn)行或者沒(méi)有在動(dòng)畫(huà)塊外調(diào)用。使用beginAnimations:context:類(lèi)方法來(lái)開(kāi)始并用commitAnimations類(lèi)方法來(lái)結(jié)束動(dòng)畫(huà)塊。默認(rèn)值是NO。
setAnimationCurve:
設(shè)置動(dòng)畫(huà)塊中的動(dòng)畫(huà)屬性變化的曲線(xiàn)。
- + (void)setAnimationCurve:(UIViewAnimationCurve)curve
討論
動(dòng)畫(huà)曲線(xiàn)是動(dòng)畫(huà)運(yùn)行過(guò)程中相對(duì)的速度。如果在動(dòng)畫(huà)塊外調(diào)用這個(gè)方法將會(huì)無(wú)效。使用 beginAnimations:context:類(lèi)方法來(lái)開(kāi)始動(dòng)畫(huà)塊并用commitAnimations來(lái)結(jié)束動(dòng)畫(huà)塊。默認(rèn)動(dòng)畫(huà)曲線(xiàn)的值是UIViewAnimationCurveEaseInOut。
setAnimationDelay:
在動(dòng)畫(huà)塊中設(shè)置動(dòng)畫(huà)的延遲屬性(以秒為單位)
- + (void)setAnimationDelay:(NSTimeInterval)delay
討論
這個(gè)方法在動(dòng)畫(huà)塊外調(diào)用無(wú)效。使用beginAnimations:context: 類(lèi)方法開(kāi)始一個(gè)動(dòng)畫(huà)塊并用commitAnimations類(lèi)方法結(jié)束動(dòng)畫(huà)塊。默認(rèn)的動(dòng)畫(huà)延遲是0.0秒。
setAnimationDelegate:
設(shè)置動(dòng)畫(huà)消息的代理。
- + (void)setAnimationDelegate:(id)delegate
參數(shù)
delegate
你可以用setAnimationWillStartSelector:和setAnimationDidStopSelector: 方法來(lái)設(shè)置接收代理消息的對(duì)象。
討論
這個(gè)方法在動(dòng)畫(huà)塊外沒(méi)有任何效果。使用beginAnimations:context:類(lèi)方法開(kāi)始一個(gè)動(dòng)畫(huà)塊并用commitAnimations類(lèi)方法結(jié)束一個(gè)動(dòng)畫(huà)塊。默認(rèn)值是nil
setAnimationDidStopSelector:
設(shè)置消息給動(dòng)畫(huà)代理當(dāng)動(dòng)畫(huà)停止的時(shí)候。
- + (void)setAnimationDidStopSelector:(SEL)selector
參數(shù)
selector
當(dāng)動(dòng)畫(huà)結(jié)束的時(shí)候發(fā)送給動(dòng)畫(huà)代理。默認(rèn)值是NULL。這個(gè)選擇者須有下面方法的簽名:animationFinished:(NSString *)animationID finished:(BOOL)finished context:(void *)context。
animationID
一個(gè)應(yīng)用程序提供的標(biāo)識(shí)符。和傳給beginAnimations:context: 相同的參數(shù)。這個(gè)參數(shù)可以為空。
finished
如果動(dòng)畫(huà)在停止前完成那返回YES;否則就是NO。
context
一個(gè)可選的應(yīng)用程序內(nèi)容提供者。和beginAnimations:context: 方法相同的參數(shù)。可以為空。本文來(lái)自泠云天天在線(xiàn)
討論
這個(gè)方法在動(dòng)畫(huà)塊外沒(méi)有任何效果。使用beginAnimations:context: 類(lèi)方法來(lái)開(kāi)始一個(gè)動(dòng)畫(huà)塊并用commitAnimations類(lèi)方法結(jié)束。默認(rèn)值是NULL。
setAnimationDuration:
設(shè)置動(dòng)畫(huà)塊中的動(dòng)畫(huà)持續(xù)時(shí)間(用秒)
- + (void)setAnimationDuration:(NSTimeInterval)duration
參數(shù)
duration
一段動(dòng)畫(huà)持續(xù)的時(shí)間。
討論
這個(gè)方法在動(dòng)畫(huà)塊外沒(méi)有效果。使用beginAnimations:context: 類(lèi)方法來(lái)開(kāi)始一個(gè)動(dòng)畫(huà)塊并用commitAnimations類(lèi)方法來(lái)結(jié)束一個(gè)動(dòng)畫(huà)塊。默認(rèn)值是0.2。
setAnimationRepeatAutoreverses:
設(shè)置動(dòng)畫(huà)塊中的動(dòng)畫(huà)效果是否自動(dòng)重復(fù)播放。
- + (void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses
參數(shù)
repeatAutoreverses
如果動(dòng)畫(huà)自動(dòng)重復(fù)就是YES否則就是NO。
討論
自動(dòng)重復(fù)是當(dāng)動(dòng)畫(huà)向前播放結(jié)束後再重頭開(kāi)始播放。使用setAnimationRepeatCount: 類(lèi)方法來(lái)指定動(dòng)畫(huà)自動(dòng)重播的時(shí)間。如果重復(fù)數(shù)為0或者在動(dòng)畫(huà)塊外那將沒(méi)有任何效果。使用beginAnimations:context:類(lèi)方法來(lái)開(kāi)始一個(gè)動(dòng)畫(huà)塊并用commitAnimations方法來(lái)結(jié)束一個(gè)動(dòng)畫(huà)塊。默認(rèn)值是NO。
setAnimationRepeatCount:
設(shè)置動(dòng)畫(huà)在動(dòng)畫(huà)模塊中的重復(fù)次數(shù)
- + (void)setAnimationRepeatCount:(float)repeatCount
參數(shù)
repeatCount
動(dòng)畫(huà)重復(fù)的次數(shù),這個(gè)值可以是分?jǐn)?shù)。
討論
這個(gè)屬性在動(dòng)畫(huà)塊外沒(méi)有任何作用。使用beginAnimations:context:類(lèi)方法來(lái)開(kāi)始一個(gè)動(dòng)畫(huà)塊并用commitAnimations類(lèi)方法來(lái)結(jié)束。默認(rèn)動(dòng)畫(huà)不循環(huán)。 lyttzx.com
setAnimationsEnabled:
設(shè)置是否激活動(dòng)畫(huà)
- + (void)setAnimationsEnabled:(BOOL)enabled
參數(shù)
enabled
如果是YES那就激活動(dòng)畫(huà);否則就是NO
討論
當(dāng)動(dòng)畫(huà)參數(shù)沒(méi)有被激活那么動(dòng)畫(huà)屬性的改變將被忽略。默認(rèn)動(dòng)畫(huà)是被激活的。
setAnimationStartDate:
設(shè)置在動(dòng)畫(huà)塊內(nèi)部動(dòng)畫(huà)屬性改變的開(kāi)始時(shí)間
- + (void)setAnimationStartDate:(NSDate *)startTime
參數(shù)
startTime
一個(gè)開(kāi)始動(dòng)畫(huà)的時(shí)間
討論
使用beginAnimations:context:類(lèi)方法來(lái)開(kāi)始一個(gè)動(dòng)畫(huà)塊并用commitAnimations類(lèi)方法來(lái)結(jié)束動(dòng)畫(huà)塊。默認(rèn)的開(kāi)始時(shí)間值由CFAbsoluteTimeGetCurrent方法來(lái)返回。
setAnimationTransition:forView:cache:
在動(dòng)畫(huà)塊中為視圖設(shè)置過(guò)渡
- + (void)setAnimationTransition:(UIViewAnimationTransition)transition forView:(UIView *)view cache:(BOOL)cache
參數(shù)
transition
把一個(gè)過(guò)渡效果應(yīng)用到視圖中。可能的值定義在UIViewAnimationTransition中。
view
需要過(guò)渡的視圖對(duì)象。
cache
如果是YES,那么在開(kāi)始和結(jié)束圖片視圖渲染一次并在動(dòng)畫(huà)中創(chuàng)建幀;否則,視圖將會(huì)在每一幀都渲染。例如緩存,你不需要在視圖轉(zhuǎn)變中不停的更新,你只需要等到轉(zhuǎn)換完成再去更新視圖。
討論
如果你想要在轉(zhuǎn)變過(guò)程中改變視圖的外貌。舉個(gè)例子,文件從一個(gè)視圖到另一個(gè)視圖,然後使用一個(gè)UIView子類(lèi)的容器視圖,如下:
- Begin an animation block.
- Set the transition on the container view.
- Remove the subview from the container view.
- Add the new subview to the container view.
- Commit the animation block.
1、開(kāi)始一個(gè)動(dòng)畫(huà)塊。 2.在容器視圖中設(shè)置轉(zhuǎn)換。 3.在容器視圖中移除子視圖。 4.在容器視圖中添加子視圖。 5.結(jié)束動(dòng)畫(huà)塊。
setAnimationWillStartSelector:
當(dāng)動(dòng)畫(huà)開(kāi)始時(shí)發(fā)送一條消息到動(dòng)畫(huà)代理
- + (void)setAnimationWillStartSelector:(SEL)selector
參數(shù)
selector
在動(dòng)畫(huà)開(kāi)始前向動(dòng)畫(huà)代理發(fā)送消息。默認(rèn)值是NULL。這個(gè)selector必須由和beginAnimations:context: 方法相同的參數(shù),一個(gè)任選的程序標(biāo)識(shí)和內(nèi)容。這些參數(shù)都可以是nil。
討論
這個(gè)方法在動(dòng)畫(huà)塊外沒(méi)有任何作用。使用beginAnimations:context:類(lèi)方法來(lái)開(kāi)始一個(gè)動(dòng)畫(huà)塊并用commitAnimations類(lèi)方法來(lái)結(jié)束。
小結(jié):iPhone開(kāi)發(fā)應(yīng)用之UIView中動(dòng)畫(huà)屬性分析的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!

















