iPhone開發應用之UIView中動畫屬性分析

來源:互聯網
上載者:User

iPhone開發應用之UIView動畫屬性分析是本文要介紹的內容,主要是來講解iphone動畫的屬性,我們可以從中很詳細的瞭解到動畫中的每一個值的屬性,來看詳細內容。

areAnimationsEnabled

返回一個布爾值表示動畫是否結束。

 
  1. + (BOOL)areAnimationsEnabled 

傳回值

如果動畫結束返回YES,否則NO。

beginAnimations:context:

開始一個動畫塊

 
  1. + (void)beginAnimations:(NSString *)animationID context:(void *)context 

參數

animationID

動畫塊內部應用程式識別碼用來傳遞給動畫代理訊息-這個選取器運用setAnimationWillStartSelector:和setAnimationDidStopSelector: 方法來設定。

context

附加的應用程式資訊用來傳遞給動畫代理訊息-這個選取器使用setAnimationWillStartSelector: 和setAnimationDidStopSelector: 方法。

討論

這個值改變是因為設定了一些需要在動畫塊中產生動畫的屬性。動畫塊可以被嵌套。如果在沒有在動畫塊中調用那麼setAnimation類方法將什麼都不做。使用 beginAnimations:context:來開始一個動畫塊並用commitAnimations類方法來結束一個動畫塊。結束一個動畫塊並開始當他在動畫塊外時。

 
  1. + (void)commitAnimations 

如果當前的動畫塊是最外層的動畫塊,當應用程式返回到迴圈運行時開始動畫塊。動畫在一個獨立的線程中所有應用程式不會中斷。使用這個方法,多個動畫可以被實現。查看setAnimationBeginsFromCurrentState:來瞭解如果開始一個動畫當另外一個動畫在播放的時候。

layerClass

返回類用來建立這一個本類的layer執行個體對象。

 
  1. + (Class)layerClass 

傳回值

一個用來建立視圖layer的類重寫子類來指定一個自訂類用來顯示。當在建立視圖layer時候調用。預設的值是CALayer類對象。泠雲工作室

setAnimationBeginsFromCurrentState

設定動畫從目前狀態開始播放。

 
  1. + (void)setAnimationBeginsFromCurrentState:(BOOL)fromCurrentState 

參數

fromCurrentState

YES如果動畫需要從他們目前狀態開始播放。否則為NO。

討論

如果設定為YES那麼當動畫在運行過程中,當前視圖的位置將會作為新的動畫的開始狀態。如果設定為NO,當前動畫結束前新動畫將使用視圖最後狀態的位置作為開始狀態。這個方法將不會做任何事情如果動畫沒有運行或者沒有在動畫塊外調用。使用beginAnimations:context:類方法來開始並用commitAnimations類方法來結束動畫塊。預設值是NO。

setAnimationCurve:

設定動畫塊中的動畫屬性變化的曲線。

 
  1. + (void)setAnimationCurve:(UIViewAnimationCurve)curve 

討論

動畫曲線是動畫運行過程中相對的速度。如果在動畫塊外調用這個方法將會無效。使用 beginAnimations:context:類方法來開始動畫塊並用commitAnimations來結束動畫塊。預設動畫曲線的值是UIViewAnimationCurveEaseInOut。

setAnimationDelay:

在動畫塊中設定動畫的延遲屬性以秒為單位)

 
  1. + (void)setAnimationDelay:(NSTimeInterval)delay 

討論

這個方法在動畫塊外調用無效。使用beginAnimations:context: 類方法開始一個動畫塊並用commitAnimations類方法結束動畫塊。預設的動畫延遲是0.0秒。

setAnimationDelegate:

設定動畫訊息的代理。

 
  1. + (void)setAnimationDelegate:(id)delegate 

參數

delegate

你可以用setAnimationWillStartSelector:和setAnimationDidStopSelector: 方法來設定接收代理訊息的對象。

討論

這個方法在動畫塊外沒有任何效果。使用beginAnimations:context:類方法開始一個動畫塊並用commitAnimations類方法結束一個動畫塊。預設值是nil

setAnimationDidStopSelector:

設定訊息給動畫代理當動畫停止的時候。

 
  1. + (void)setAnimationDidStopSelector:(SEL)selector 

參數

selector

當動畫結束的時候發送給動畫代理。預設值是NULL。這個選擇者須有下面方法的簽名:animationFinished:(NSString *)animationID finished:(BOOL)finished context:(void *)context。

animationID

一個應用程式提供的標識符。和傳給beginAnimations:context: 相同的參數。這個參數可以為空白。

finished

如果動畫在停止前完成那返回YES;否則就是NO。

context

一個可選的應用程式內容提供者。和beginAnimations:context: 方法相同的參數。可以為空白。本文來自泠雲天天線上

討論

這個方法在動畫塊外沒有任何效果。使用beginAnimations:context: 類方法來開始一個動畫塊並用commitAnimations類方法結束。預設值是NULL。

setAnimationDuration:

設定動畫塊中的動畫期間用秒)

 
  1. + (void)setAnimationDuration:(NSTimeInterval)duration 

參數

duration

一段動畫持續的時間。

討論

這個方法在動畫塊外沒有效果。使用beginAnimations:context: 類方法來開始一個動畫塊並用commitAnimations類方法來結束一個動畫塊。預設值是0.2。

setAnimationRepeatAutoreverses:

設定動畫塊中的動畫效果是否自動重複播放。

 
  1. + (void)setAnimationRepeatAutoreverses:(BOOL)repeatAutoreverses 

參數

repeatAutoreverses

如果動畫自動重複就是YES否則就是NO。

討論

自動重複是當動畫向前播放結束後再重頭開始播放。使用setAnimationRepeatCount: 類方法來指定動畫自動重播的時間。如果重複數為0或者在動畫塊外那將沒有任何效果。使用beginAnimations:context:類方法來開始一個動畫塊並用commitAnimations方法來結束一個動畫塊。預設值是NO。

setAnimationRepeatCount:

設定動畫在動畫模組中的重複次數

 
  1. + (void)setAnimationRepeatCount:(float)repeatCount 

參數

repeatCount

動畫重複的次數,這個值可以是分數。

討論

這個屬性在動畫塊外沒有任何作用。使用beginAnimations:context:類方法來開始一個動畫塊並用commitAnimations類方法來結束。預設動畫不迴圈。 lyttzx.com

setAnimationsEnabled:

設定是否啟用動畫

 
  1. + (void)setAnimationsEnabled:(BOOL)enabled 

參數

enabled

如果是YES那就啟用動畫;否則就是NO

討論

當動畫參數沒有被啟用那麼動畫屬性的改變將被忽略。預設動畫是被啟用的。

setAnimationStartDate:

設定在動畫塊內部動畫屬性改變的開始時間

 
  1. + (void)setAnimationStartDate:(NSDate *)startTime 

參數

startTime

一個開始動畫的時間

討論

使用beginAnimations:context:類方法來開始一個動畫塊並用commitAnimations類方法來結束動畫塊。預設的開始時間值由CFAbsoluteTimeGetCurrent方法來返回。

setAnimationTransition:forView:cache:

在動畫塊中為視圖設定過渡

 
  1. + (void)setAnimationTransition:(UIViewAnimationTransition)transition forView:(UIView *)view cache:(BOOL)cache 

參數

transition

把一個過渡效果應用到視圖中。可能的值定義在UIViewAnimationTransition中。

view

需要過渡的視圖對象。

cache

如果是YES,那麼在開始和結束圖片視圖渲染一次並在動畫中建立幀;否則,視圖將會在每一幀都渲染。例如緩衝,你不需要在視圖轉變中不停的更新,你只需要等到轉換完成再去更新視圖。

討論

如果你想要在轉變過程中改變視圖的外貌。舉個例子,檔案從一個視圖到另一個視圖,然後使用一個UIView子類的[內容] 檢視,如下:

 
  1. Begin an animation block.  
  2.  
  3. Set the transition on the container view.  
  4.  
  5. Remove the subview from the container view.  
  6.  
  7. Add the new subview to the container view.  
  8.  
  9. Commit the animation block. 

1、開始一個動畫塊。 2.在[內容] 檢視中設定轉換。 3.在[內容] 檢視中移除子視圖。 4.在[內容] 檢視中添加子視圖。 5.結束動畫塊。

setAnimationWillStartSelector:

當動畫開始時發送一條訊息到動畫代理

 
  1. + (void)setAnimationWillStartSelector:(SEL)selector 

參數

selector

在動畫開始前向動畫代理髮送訊息。預設值是NULL。這個selector必須由和beginAnimations:context: 方法相同的參數,一個任選的程式標識和內容。這些參數都可以是nil。

討論

這個方法在動畫塊外沒有任何作用。使用beginAnimations:context:類方法來開始一個動畫塊並用commitAnimations類方法來結束。

小結:iPhone開發應用之UIView動畫屬性分析的內容介紹完了,希望本文對你有所協助!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.