2011-06-22 56 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

相关问题