1. 程式人生 > >IOS常用動畫中的列舉UIViewAnimationOptions

IOS常用動畫中的列舉UIViewAnimationOptions

首先這個列舉屬於UIViewAnimation。我們經常使用的函式是[UIView animateWithDuration: animations:^{} completion:^(BOOL finished) {}];和[UIView animateWithDuration: animations:^{}];如果動畫稍微複雜點,例如需要組合等等就可能用到這個函式:[UIView animateWithDuration: delay: options: animations: completion:^(BOOL finished) {}];剛開始接觸的朋友看到一堆列舉可能就覺得煩,尤其是蘋果那混亂的動畫框架東一坨,西一坨。又是Quartz2D,又是核心動畫跟臭襪子一樣……沒關係,撿回來接著穿。

  以上方法中的options一項需要傳入一個列舉,這個列舉大概控制的是這幾個要素:當前動畫巢狀中的動畫執行隨時間的快慢種類(先快後慢等..)。動畫要一直重複嗎。如果我使用轉場動畫那麼我用哪種轉場效果。還有子動畫巢狀在父動畫中時我們如何對待父動畫中的相同選項等等..

 正文:

UIViewAnimationOptionLayoutSubviews //提交動畫的時候佈局子控制元件,表示子控制元件將和父控制元件一同動畫。

UIViewAnimationOptionAllowUserInteraction //動畫時允許使用者交流,比如觸控

UIViewAnimationOptionBeginFromCurrentState //從當前狀態開始動畫

UIViewAnimationOptionRepeat //動畫無限重複

UIViewAnimationOptionAutoreverse //執行動畫迴路,前提是設定動畫無限重複

UIViewAnimationOptionOverrideInheritedDuration //忽略外層動畫巢狀的執行時間

UIViewAnimationOptionOverrideInheritedCurve //忽略外層動畫巢狀的時間變化曲線

UIViewAnimationOptionAllowAnimatedContent //通過改變屬性和重繪實現動畫效果,如果key沒有提交動畫將使用快照

UIViewAnimationOptionShowHideTransitionViews //用顯隱的方式替代新增移除圖層的動畫效果

UIViewAnimationOptionOverrideInheritedOptions //忽略巢狀繼承的選項

//時間函式曲線相關

UIViewAnimationOptionCurveEaseInOut //時間曲線函式,由慢到快

UIViewAnimationOptionCurveEaseIn //時間曲線函式,由慢到特別快

UIViewAnimationOptionCurveEaseOut //時間曲線函式,由快到慢

UIViewAnimationOptionCurveLinear //時間曲線函式,勻速

//轉場動畫相關的

UIViewAnimationOptionTransitionNone //無轉場動畫

UIViewAnimationOptionTransitionFlipFromLeft //轉場從左翻轉

UIViewAnimationOptionTransitionFlipFromRight //轉場從右翻轉

UIViewAnimationOptionTransitionCurlUp //上卷轉場

UIViewAnimationOptionTransitionCurlDown //下卷轉場

UIViewAnimationOptionTransitionCrossDissolve //轉場交叉消失

UIViewAnimationOptionTransitionFlipFromTop //轉場從上翻轉

UIViewAnimationOptionTransitionFlipFromBottom //轉場從下翻轉

 以上是淺略的理解,歡迎朋友有更好的指正,以免誤人子弟。

 補充:關於最後一組轉場動畫它一般是用在這個方法中的:

    [UIView transitionFromView: toView: duration: options: completion:^(BOOL finished) {}];

 該方法效果是插入一面檢視移除一面檢視,期間可以使用一些轉場動畫效果。