我有一个简单的动画,我在滚动视图委托方法scrollViewDidEndDragging
中执行。
看起来像这样:
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
NSLog(@"finger was lifted");
[UIView animateWithDuration:1.0
animations:^{
self.homeLabel.frame = self.view.frame;
}];
}
在抬起手指后使用此动画我的homeLabel
来自顶部,我想在标签上添加一个反弹动画,所以当它来自顶部时,而不是顺利着陆它将有一个很好的弹跳......我该怎么办? thanksss
答案 0 :(得分:18)
您可以使用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 Damping
和Initial Spring Velocity
可以提供您想要的效果。
答案 1 :(得分:0)
一个好的解决方案是为视图创建一个自定义图层,覆盖addAnimation:forKey:
方法以包含自定义计时功能。
这个answer详细说明了如何做到这一点。
另一个选择是看一下关键帧动画。这个question and answer涵盖了很好的方法。