6

我有一个简单的动画,我在我的滚动视图委托方法中执行scrollViewDidEndDragging

它看起来像这样:

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {

    NSLog(@"finger was lifted");

    [UIView animateWithDuration:1.0
                     animations:^{
                         self.homeLabel.frame = self.view.frame;
                    }];
}

在抬起手指后使用这个动画我homeLabel是从顶部来的,我想给标签添加一个反弹动画,所以当它从顶部来时,它不会平稳着陆,而是会有一个很好的反弹......我怎么能去做?谢谢

4

2 回答 2

20

您可以使用usingSpringWithDamping动画功能。

[UIView animateWithDuration:1.0 delay:0 usingSpringWithDamping:0.2 initialSpringVelocity:5.0 options:UIViewAnimationOptionCurveLinear animations:^{
    self.homeLabel.frame = self.view.frame;
} completion:^(BOOL finished) {

}];

调整Spring DampingandInitial Spring Velocity可以给你你想要的效果。

于 2015-01-13T17:03:31.613 回答
0

一个好的解决方案是为您的视图创建一个自定义层,该层覆盖该addAnimation:forKey:方法以包含自定义计时功能。

这个答案详细说明了如何做到这一点。

另一种选择是查看关键帧动画。这个问题和答案很好地涵盖了这种方法。

于 2015-01-13T16:50:00.077 回答