4

画面上を特定のポイントまでスライドする CALayer であるメニューがあります。メニューがポイントを少し過ぎてからポイントの少し前に移動し、ポイントに着陸するという効果が必要です。変換を適用してメニューを移動できますが、このバウンス効果を機能させたいと思っていました。CAKeyframeAnimation を調べていましたが、例/チュートリアルを見つけるのに苦労しています。CA プログラミング ガイドを見てきましたが、実際には何も見つかりませんでした。リンクやヘルプは素晴らしいでしょう。ありがとう。

4

1 に答える 1

5

少し前に、あなたが探しているものを実行するコードをいくつかリリースしました。基本的にCGPathRef、レイヤーがヒットするすべてのポイントを含む独自のポイントを生成し、そのパスを のpath属性に使用する必要がありますCAKeyframeAnimation。コードは次のようになります。

CGPoint path[3] = {
    FTAnimationOutOfViewCenterPoint(enclosingView.bounds, view.frame, view.center, direction),
    [self overshootPointFor:view.center withDirection:direction threshold:(overshootThreshold_ * 1.15)],
    view.center
};

CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
CGMutablePathRef thePath = CGPathCreateMutable();
CGPathAddLines(thePath, NULL, path, 3);
animation.path = thePath;
CGPathRelease(thePath);

メソッド全体はこちらです。

于 2011-04-25T16:26:56.437 に答える