Перемещение / Поворот объекта с использованием его обновленного положения и наклона? - PullRequest
0 голосов
/ 29 декабря 2011

Это в основном простая проблема, которую я не могу обойти ...

  1. Итак, у меня есть объект UIImageView определенного кадра, над которым я реализую CAAnimation с вращением и перемещением, и он находится в новых координатах (x, y) и был повернут на несколько градусов.

  2. Эта анимация прекрасно работает. Но если я снова сделаю вращение и перемещение из состояния ТО, я хочу, чтобы объект использовал новый кадр и новые свойства из ШАГА 1 после его вращения и снова повернул на новый угол.

На данный момент, когда я снова пытаюсь вращаться, он использует свое стандартное состояние и размер кадра (во время инициализации) и выполняет вращение для него ...

And by this I mean... If I have a square of frame (100, 200, 10, 10), and I rotate it by 45 degrees, the shape is now a different square, with different frame size and end points compared to the original square, and I implement a new rotation by (say) 152 degrees on it and it needs to perform a rotation on the newer square... But it turns out that it uses the same frame size as the previous one (x,y, 10, 10).

Как мне продолжить вращение / перемещение объекта с его обновленным положением и состоянием ??


Примечание: (если вам нужен код для анимации)

Это код моей анимации, который включает в себя простое вращение и движение! http://pastebin.com/cR8zrKRq

1 Ответ

1 голос
/ 30 декабря 2011

Вам нужно сохранить шаг поворота и обновить вращение объекта в animationDidStop: метод. Итак, в вашем казино вы должны подать заявление:

-(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
{ 
   //angle is global
   CATransform3D rotationTransform = CATransform3DMakeRotation((angle%4)*M_PI_4, 0, 0, 1);
   [object.layer setTransform:rotationTransform];
   object.center = tempFrame; //already there
}

где угол - целочисленный счетчик анимаций (шагов) со значениями 0,1,2,3. Мой шаг - M_PI_4. Вероятно, есть лучшее решение проблемы, но это должно сработать

...