1

UIViewカスタムクラスのプロパティのセッター メソッドがあります。アニメーション ブロック内に設定されている場合は、アニメーションと同じ持続時間とイージングでビューのレイヤーにUIViewを追加したいと思います。アニメーション ブロック内にいるかどうかを確認するにはどうすればよいですか?また、その継続時間とイージング カーブを取得するにはどうすればよいですか?CABasicAnimationUIViewUIView

4

4 に答える 4

2

非常に簡単です..ビューに適用されたすべてのアニメーションキーを取得するには、次を使用します

[self.YourView.layer animationKeys];
于 2013-03-04T12:43:27.873 に答える
1

この質問に基づいて、UIViewアニメーションをブロックするためにこの拡張機能を作成しました: UIView+AnimatedProperty

CAAnimationsアニメーション ブロックからセッターが呼び出されたときに実行できます。との例cornerRadiusが含まれています。

于 2013-02-03T11:11:27.423 に答える
1

現在のアニメーションを簡単に取得できます。たとえば、次のように設定しますCATransaction

CAAnimation *animation = [self.layer animationForKey:self.layer.animationKeys.firstObject];
[CATransaction begin];
[CATransaction setAnimationDuration:animation.duration];
[CATransaction setAnimationTimingFunction:animation.timingFunction];

// CALayer animation here

[CATransaction commit];
于 2014-04-10T20:45:53.460 に答える
0

[UIView animateWithDuration]のドキュメントには、次のように記載されています。

このメソッドは、UIViewAnimationOptionCurveEaseInOutおよびUIViewAnimationOptionTransitionNoneアニメーションオプションを使用して、指定されたアニメーションをすぐに実行します。

持続時間については、自分で持続時間を設定するので、すでにそれができています。

于 2013-02-02T18:09:01.503 に答える