Почему разные константы анимации блоков имеют одинаковое значение? - PullRequest
6 голосов
/ 22 июня 2011

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;

Рассмотрим определения enum из документации iOS.Мой вопрос:
Для UIViewAnimationOptionCurveEaseInOut, константа равна «0 << 16», но если мое понимание верно, 0 сдвиг влево на 16 позиций по-прежнему 0. И это должно быть то же самое, что UIViewAnimationOptionTransitionNone, который равен «0 <<20 "(так как оно также должно быть 0).Кажется, что иметь два очень разных параметра, равных одному значению, не имеет смысла. </p>

Кроме того, мое тестирование показывает, что UIViewAnimationOptionCurveEaseInOut, похоже, не оказывает никакого влияния вообще.

Могло быть какое-то недопонимание с моей стороны, надеюсь, что кто-то знающий поможет ...

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

1 Ответ

7 голосов
/ 22 июня 2011

Все параметры, которые равны 0, являются настройками по умолчанию, поэтому, если вы не передадите какой-либо параметр, все равно, что передать (UIViewAnimationOptionCurveEaseInOut| UIViewAnimationOptionTransitionNone) или просто 0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...