3

このクラスが行うとドキュメントに書かれているように、CAMediaTimingFunction (kCAMediaTimingFunctionEaseIn など) を使用して、入力値 (0-1) を出力値 (0-1) にマップしたいと思います。ただし、この機能はまったく公開されていないようです。

独自のカスタム値でこの機能にアクセスする方法はありますか? これは UIView や CALayer などではなく、iOS 曲線を使用したいカスタム コードの一部です。

4

2 に答える 2

1

実際には、その機能が公開されている唯一の機能です。CAMediaTimingFunctionは、(0.0,0.0)で始まり(1.0,1.0)で終わるベジェ曲線を定義する2つの制御点の座標を格納するクラスです。このような曲線、実際には区間[0,1]から区間[0,1]へのマッピングです。

特定の曲線の制御点の座標を設定する方法を理解したい場合は、ベジェ曲線とは何かをグーグルで検索することをお勧めします。

補遺:

明確にしたように、既存のCAMediaTimingFunctionインスタンスを使用して、値からその変換された値へのマッピングを実行する必要があります(マッピングの計算とも呼ばれます)。getControlPointAtIndex:values:を使用してインスタンスからコントロールポイントの座標を取得し、それらを使用してマッピングを計算できます。計算については、http://en.wikipedia.org/wiki/Bézier_curveを参照してください。

于 2012-08-10T11:34:35.087 に答える
1

これはあなたが必要とするものです: https://stackoverflow.com/a/19084008/251440

私はそれを自分で必要としていたので、インターフェイスと機能がまったく同じCAMediaTimingFunctionであるが必要な-valueForX:メソッドを備えたクラスを構築しました。

于 2013-09-29T22:27:16.303 に答える