我正在使用基于图像层的Lottie动画文件,并且设计已经完成,因此我的动画位于“动画视图”的中心。我正在尝试使用iOS中的“ Transform.Position”和Android中的Transform_Position属性将其移至左下角。
我的动画由几层顶层(手,腿,身体)和几层(眼睛,嘴巴)组成,其中“身体”作为父层。这在Android上工作正常,但在iOS中,顶层得到了正确翻译,但子层并未根据父层进行补偿。当我明确尝试抵消它们时,只要没有旋转,它就可以工作。旋转的层的行为非常奇怪。
我正在使用以下方式进行移动,
class PointCallback : LOTPointValueDelegate
{
public override CGPoint StartKeyframe(nfloat currentFrame, nfloat startKeyframe, nfloat endKeyframe, nfloat interpolatedProgress, CGPoint startPoint, CGPoint endPoint, CGPoint interpolatedPoint)
{
CGPoint newPosi = new CGPoint(interpolatedPoint);
newPosi.X -= 200;
newPosi.Y += 200;
return newPosi;
}
}
_animationView.SetValueDelegate(new PointCallback(), LOTKeypath.KeypathWithString("body1.Transform.Position"));
_animationView.SetValueDelegate(new PointCallback(), LOTKeypath.KeypathWithString("left hand1.Transform.Position"));
_animationView.SetValueDelegate(new PointCallback(), LOTKeypath.KeypathWithString("right hand1.Transform.Position"));
_animationView.SetValueDelegate(new PointCallback(), LOTKeypath.KeypathWithString("acc1.Transform.Position"));
_animationView.SetValueDelegate(new PointCallback(), LOTKeypath.KeypathWithString("mouth1.Transform.Position"));
我做错了吗?我已经阅读了所有文档,但尚未找到解决方案。
任何帮助将不胜感激。