2013-02-15 6 views
0

Tyring для анимации UIView путем изменения его высоты и положения. Первая анимация прыгает? У меня размер UIView (theView), установленный в Storyboards, должен быть высотой 216. Таким образом, приложение загружается и отображается экран. Я нажимаю theView, и он быстро перескакивает в высоту до 200 + пикселей, а затем оживляет, как следует?Анимация UIView размер скачков

- (void)singleTapAction:(UIGestureRecognizer *)singleTap { 
UIView *view = singleTap.view; 
[UIView animateWithDuration:1.2 delay:0 options:UIViewAnimationCurveLinear | UIViewAnimationOptionAllowUserInteraction animations:^{ 
    CGRect theFrame = self.theView.frame; 
    theFrame.size.height += 100.f; <!-- when it hits here the view jumps then animates 
    self.theView.frame = theFrame; 
} 
       completion:^(BOOL finished) { 
        if(finished){ 
         [UIView animateWithDuration:1.2 delay:0 options:UIViewAnimationCurveLinear | UIViewAnimationOptionAllowUserInteraction animations:^{ 
          CGRect theFrame = self.theView.frame; 
          theFrame.origin.y -= 100.f; 
          self.theView.frame = theFrame; 
         } 
              completion:^(BOOL finished) { 
               NSLog(@"animations complete"); 
              }]; 
        } 
       }]; 

}

+0

Не забудьте понять ваш вопрос. Просто нет, кстати, у вас есть опция «auto reverse» в UIView :: animate. – Vinzius

+0

@Vinzius вы правы. – jdog

ответ

0

Try движущихся линий

CGRect theFrame = self.theView.frame; 
theFrame.size.height += 100.f; <!-- when it hits here the view jumps then animates 

вне блока. Поместите его перед вызовом метода анимации.

+0

Оценки заставят его расти в обоих направлениях, потому что он не относится к его родителям. – jdog

+0

Я был не прав, попробуйте отредактированный ответ. – Shashank

+0

Vinzius выше имеет правильный ответ, вопрос был UIViewAnimationCurveLinear. Если вы переходите на UIViewAnimationCurveOut, это работает, но UIViewAnimationCurveLinear или UIViewAnimationCurveIn заставляет его прыгать. Или вы можете полностью удалить параметры, и он работает. – jdog

Смежные вопросы