在ios中使用关键帧动画时如何设置动画曲线?

前端之家收集整理的这篇文章主要介绍了在ios中使用关键帧动画时如何设置动画曲线?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用UIView的关键帧动画时如何设置动画曲线:
animateKeyframesWithDuration:delay:options:animations:completion:

无论我在动画块中做什么似乎都是线性的(除非我使用UIViewKeyframeAnimationOptionCalculationModeCubic选项,但这不是我想要的).

在使用常规动画时,我希望在动画上有一个简单的曲线,如UIViewAnimationOptionCurveEaSEOut选项:

animateWithDuration:delay:options:animations:completion:

解决方法

如果您正在使用关键帧,则必须自行定义曲线.如果添加线性关键帧,则会有线性动画.如果添加非线性关键帧,您将具有非线性动画.

frameStartTime在这里是你的朋友…它将始终是关键帧之间的线性(或节奏/立方/立方体起搏,如在UIViewKeyframeAnimationOptionCalculationMode中定义)

UIViewKeyframeAnimationOptionCalculationModeLinear     = 0 << 9,UIViewKeyframeAnimationOptionCalculationModeDiscrete   = 1 << 9,UIViewKeyframeAnimationOptionCalculationModePaced      = 2 << 9,UIViewKeyframeAnimationOptionCalculationModeCubic      = 3 << 9,UIViewKeyframeAnimationOptionCalculationModeCubicPaced = 4 << 9

要计算正确的时间值,可以将其用作参考:
RBBEasingFunction

例如. EaseInOutQuad这样(其中t是动画内的相对时间):

if (t < 0.5) {
    return 2 * t * t;
} else {
    return -1 + (4 - 2 * t) * t;
}
原文链接:https://www.f2er.com/iOS/329217.html

猜你在找的iOS相关文章