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