2012-06-06 2 views
0

У меня есть пользовательский класс UIView, который я хочу вращать, сжимать и перемещаться с экрана под случайным углом в одно и то же время.Animate view - Spin, shrink and off off screen

У меня есть этот код, который раскручивает слой несколько раз

- (void)spinLayer:(CALayer *)inLayer duration:(CFTimeInterval)inDuration currentAngle:(CGFloat)curAngle 
     direction:(int)direction 
{ 
    CABasicAnimation* rotationAnimation; 

    // Rotate about the z axis 
    rotationAnimation = 
    [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; 

    // Rotate 360 degress, in direction specified 
    rotationAnimation.toValue = [NSNumber numberWithFloat:(M_PI * 4 * direction) + curAngle]; 

    // Perform the rotation over this many seconds 
    rotationAnimation.duration = inDuration; 

    // Set the pacing of the animation 
    rotationAnimation.timingFunction = 
    [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; 

    // Add animation to the layer and make it so 
    [inLayer addAnimation:rotationAnimation forKey:@"rotationAnimation"]; 
} 

, который я называю так:

CGFloat angle = atan2(sender.transform.b, sender.transform.a); // Current angle 
[self spinLayer:sender.layer duration:0.5 currentAngle:angle direction:1]; //direction can be -1 

Но как я могу теперь уменьшить вид и переместить его в то же время?

Благодаря

ответ

1

Поворот вид на 360 градусов не дает анимации в качестве начального и конечного состояния идентичны. Вы должны попробовать использовать несколько значений для значений вращения.

+0

Извините, я думаю, что редактировал свой вопрос одновременно, вы должны были ответить. Теперь у меня теперь нормально работает ротация, мне просто нужно отдохнуть. – Darren

+0

Я бы использовал один из более сложных классов анимации, который позволяет вам установить несколько значений для анимации. – FelixLam

+0

Как бы вы играли с более сложными классами? Читая этот вопрос, http://stackoverflow.com/questions/518530/rotate-a-uiview-around-its-center-but-several-times предлагает метод, который я использовал. – Darren