Дочерний слой не преобразуется должным образом при преобразовании родителя в iOS Lottie - PullRequest
0 голосов
/ 22 ноября 2018

Я использую файл анимации Lottie, основанный на слое изображений, и дизайн был сделан таким образом, что моя анимация находится в центре представления анимации.Я пытаюсь переместить это в нижний левый угол, используя «Transform.Position» в iOS и свойство Transform_Position в Android.

Моя анимация состоит из нескольких слоев верхнего уровня (рука, нога, тело) инесколько слоев (глаза, рот), которые имеют «тело» в качестве родительского слоя.Это прекрасно работает в 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"));

Я не делаю это правильно?Я прочитал всю документацию, но пока не нашел решения.

Любая помощь будет принята с благодарностью.

...