2011-06-22 57 views
6

UIViewAnimationOptions
用塊動畫視圖的選項。爲什麼不同的塊動畫常量具有相同的值?

enum { 
    UIViewAnimationOptionLayoutSubviews   = 1 << 0, 
    UIViewAnimationOptionAllowUserInteraction  = 1 << 1, 
    UIViewAnimationOptionBeginFromCurrentState  = 1 << 2, 
    UIViewAnimationOptionRepeat     = 1 << 3, 
    UIViewAnimationOptionAutoreverse    = 1 << 4, 
    UIViewAnimationOptionOverrideInheritedDuration = 1 << 5, 
    UIViewAnimationOptionOverrideInheritedCurve = 1 << 6, 
    UIViewAnimationOptionAllowAnimatedContent  = 1 << 7, 
    UIViewAnimationOptionShowHideTransitionViews = 1 << 8, 

    UIViewAnimationOptionCurveEaseInOut   = 0 << 16, 
    UIViewAnimationOptionCurveEaseIn    = 1 << 16, 
    UIViewAnimationOptionCurveEaseOut    = 2 << 16, 
    UIViewAnimationOptionCurveLinear    = 3 << 16, 

    UIViewAnimationOptionTransitionNone   = 0 << 20, 
    UIViewAnimationOptionTransitionFlipFromLeft = 1 << 20, 
    UIViewAnimationOptionTransitionFlipFromRight = 2 << 20, 
    UIViewAnimationOptionTransitionCurlUp   = 3 << 20, 
    UIViewAnimationOptionTransitionCurlDown  = 4 << 20, 
}; 
typedef NSUInteger UIViewAnimationOptions; 

考慮關於iOS文檔中的枚舉定義。 我的問題是:
對於UIViewAnimationOptionCurveEaseInOut,不變的是「0 < < 16」,但如果我的理解是正確的,由16位0左移仍爲0。它應該是一樣UIViewAnimationOptionTransitionNone是「0 < < 20「(因爲它也應該是0)。有兩個非常不同的選項等於相同的值似乎沒有意義。

此外,我的測試顯示UIViewAnimationOptionCurveEaseInOut似乎沒有任何效果。

有可能是我誤會了,希望有人懂行將有助於...

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIView_Class/UIView/UIView.html%23//apple_ref/c/tdef/UIViewAnimationOptions

回答

7

所有選項,即等於0爲默認設置,所以如果你不傳遞任何選項與傳入(UIViewAnimationOptionCurveEaseInOut| UIViewAnimationOptionTransitionNone)或只是0

+0

感謝您的協助。你的回答非常簡潔和準確...... – Stanley

+0

我仍然感到困惑..是否指定'UIViewAnimationOptionTransitionNone'會使動畫行爲變得輕鬆自如? – Philip007

+0

@ Philip007,no。這意味着對於轉換(從一個視圖到另一個視圖的動畫效果),默認值爲「UIViewAnimationOptionTransitionNone」,因爲它是0.而對於速度曲線,默認情況下爲「UIViewAnimationOptionCurveEaseInOut」動畫,因爲它也是0. – vikingosegundo

相關問題