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 DampingInitial Spring Velocity得ることができます。

于 2015-01-13T17:03:31.613 に答える
0

良い解決策の 1 つは、メソッドをオーバーライドしaddAnimation:forKey:てカスタム タイミング関数を含めるビュー用のカスタム レイヤーを作成することです。

この回答は、それを行う方法の詳細に入ります。

もう 1 つのオプションは、キー フレーム アニメーションを調べることです。この質問と回答は、そのアプローチを非常によくカバーしています。

于 2015-01-13T16:50:00.077 に答える