2013-06-06 3 views
0

Я прочитал интро к основной анимации от Apple, обыскал все для «ios tweening», «ios easing» и связанных с ними тонких, но на удивление подошел с пустыми руками.Как я могу анимировать коробку для расширения и сжимать на ощупь?

Как я могу заключить контракт с UILabel и скрыть его кнопки subview, сохраняя показ UILabel? Ссылки, код, дизайн-обзор или что-либо, что сделает это, будет очень полезно.

+1

Можете ли вы просто взглянуть на этикетку, которая расширяет ее высоту кадра при касании этикетки? – Wain

+0

Wain, это очень хитрый, и я, вероятно, сделаю это, пока не найду оптимальное решение. Но я не буду использовать эффектные эффекты анимации, показанные на http://stackoverflow.com/questions/5161465/how-to-create-custom-easing-function-with-core-animation – user

+0

Конечно, вы можете использовать те, это просто другой способ анимации рамки ... – Wain

ответ

0

Удивленный никто не ступил на это, ответ довольно прост. Но, возможно, именно поэтому.

Я не уверен в анимации самой UILabel, хотя, поскольку это подкласс UIView, я подозреваю, что это будет довольно нормально.

Самый простой способ получить это сделать, это использовать статический метод UIView:

+ (void)animateWithDuration:(NSTimeInterval)duration 
       animations:(void (^)(void))animations 

В моем случае, у меня есть UILabel, myLabel на вершине UIView myContainer с UIButton dismissButton. Предположив Я хочу dismissButton, при нажатии закатать myContainer я Crtl-перетащить мою dismissButton кнопку для надлежащего viewController.m и в -(IBAction) метод записи:

-(IBAction)dismissButtonPressed:(id)sender 
{ 
    [UIView animateWithDuration:1.0 
        animations:^{ 
      [self.myContainer.frame = CGRectMake(0,0,frame.bounds.size.width,20)]; 
      [self.dismissButton removeFromSuperView]; }]; 
} 

Примечание: Это из моего ограниченного объема памяти, поэтому указывают любые ошибки.

Примечание 2: Если вы используете это, чтобы помочь себе, смотреть эти точки с запятой, скобки и фигурные скобки

В настоящее время большинство людей, читающих это для справки может потребоваться больше функциональных возможностей, что при нажатии на кнопку, которая катится вверх вид навсегда , Существуют более подробные методы animateWith *.

Существует

+(void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion 

, который позволяет блокировать завершение быть сделано после того, как вид закончен анимировать. Примечание от класса IOS от Paul Hegarty: Вы можете вызвать дополнительные методы анимации из вашего блока завершения.

Существует еще один способ анимации, который позволяет нам указывать варианты анимации.

+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion 

Варианты включают в себя:

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, 
    UIViewAnimationOptionTransitionCrossDissolve = 5 << 20, 
    UIViewAnimationOptionTransitionFlipFromTop  = 6 << 20, 
    UIViewAnimationOptionTransitionFlipFromBottom = 7 << 20, 
}; 
typedef NSUInteger UIViewAnimationOptions; 

Надеюсь, кто-то может извлечь выгоду из этого долго наматывается интро анимации UIView.