UIViewAnimation在设置框架后反弹

时间:2014-07-02 16:22:35

标签: ios animation core-animation uiviewanimation

我得到一个UIImageView,它应该从顶部滑入视图,然后当它停止时应该制作一个反弹动画。

我正在制作这样的y.position变化:

     [UIView animateWithDuration:1.3
                                   delay:0.0
                                 options:UIViewAnimationOptionCurveEaseIn
                              animations:^{
                  [grassView setFrame:CGRectMake(grassView.frame.origin.x, 425, grassView.frame.size.width, grassView.frame.size.height)];
                  [headlineView setAlpha:1.0];
                  [self.loginButton setAlpha:1.0];
             // [textView setAlpha:1.0];
             [textView setFrame:CGRectMake(textView.frame.origin.x, -136, textView.frame.size.width, textView.frame.size.height)];

         }

                              completion:^(BOOL finished) {
             self.usernameField.placeholder = NSLocalizedString(@"username", nil);
             self.passwordField.placeholder = NSLocalizedString(@"password", nil);
}];

不要担心将origin.y坐标设置为-136。我的图像视图位于屏幕外面-460处,因为它的高度为450.但是当将图像视图滑动到屏幕时,我不想显示整个图像,这就是为什么它没有动画到y.position>的原因。 = 0.但这部分工作正常。我的imageview显示在我想要的正确位置。现在我需要建议如何在位置改变时让imageview反弹。我已经尝试了一些CABasicAnimation,但它看起来并不像我想要的那样。此外,当我调用方法让imageview在我的UIViewAnimation的完成块中反弹时,弹跳效果开始变晚。

对于我有什么提示或想法,如何在设置框架后让图像视图反弹?

1 个答案:

答案 0 :(得分:2)

因为iOS7可以使用

[UIView animateWithDuration:<#(NSTimeInterval)#> delay:<#(NSTimeInterval)#> usingSpringWithDamping:<#(CGFloat)#> initialSpringVelocity:<#(CGFloat)#> options:<#(UIViewAnimationOptions)#> animations:<#^(void)animations#> completion:<#^(BOOL finished)completion#> ]

只需使用阻尼值和初始速度。