我想使用CAMediaTimingFunction(例如kCAMediaTimingFunctionEaseIn)将输入值(0-1)映射到输出值(0-1),就像这个类的the docs一样。但是,这种功能似乎根本没有暴露出来。
我是否可以通过某种方式为自己的自定义值访问此功能?这不是在UIView,CALayer等中 - 它只是在一些自定义代码中,我想使用iOS曲线。
答案 0 :(得分:1)
实际上,功能是唯一暴露的功能。 CAMediaTimingFunction是一个类,它存储两个控制点的坐标,这两个控制点定义一个以(0.0,0.0)开始并以(1.0,1.0)结束的Bézier曲线。这样的曲线实际上是从区间[0,1]到区间[0,1]的映射。
如果您想了解如何设置特定曲线的控制点坐标,您可能想要谷歌bezier曲线。
附录:
当您澄清时,您希望使用现有的CAMediaTimingFunction实例来执行从值到其转换值的映射(也称为计算映射)。您可以使用getControlPointAtIndex:values:从实例检索控制点的坐标,并使用它们来计算映射。有关数学的信息,请参阅http://en.wikipedia.org/wiki/Bézier_curve。
答案 1 :(得分:1)
这就是您所需要的:https://stackoverflow.com/a/19084008/251440
我自己需要它,所以构建了一个类,其界面和功能与CAMediaTimingFunction
完全相同,但需要-valueForX:
方法。