我想使用CAMediaTimingFunction(例如kCAMediaTimingFunctionEaseIn)将输入值(0-1)映射到输出值(0-1),就像文档所说的那样。然而,这个功能似乎根本没有被公开。是否有办法让我在自己的自定义值中访问此功能?这不是在UIView、CALayer等中 - 它只是在一些自定义代码中,我想使用iOS曲线。
CAMediaTimingFunction
完全相同,但具有所需的-valueForX:
方法。实际上,这个功能是唯一公开的功能。CAMediaTimingFunction是一个类,它存储定义从(0.0,0.0)开始到(1.0,1.0)结束的Bézier曲线的两个控制点的坐标。这样的曲线实际上是从区间[0,1]到区间[0,1]的映射。
如果您想了解如何设置特定曲线的控制点的坐标,可以搜索贝塞尔曲线。
补充:
正如您澄清的那样,您想使用现有的CAMediaTimingFunction实例将值映射到其转换后的值(也称为计算映射)。您可以使用getControlPointAtIndex:values:从实例中检索控制点的坐标,并使用它们来计算映射。有关数学,请参见http://en.wikipedia.org/wiki/Bézier_curve。