2012-06-29 5 views
0

Я вращаю круглую стрелу в кругом круглая круглая кружка .. Это круто, и все, кроме меня, я хочу, чтобы что-то немного отполировано, когда дело доходило до конца, как и другие виды, где вы можете оживить их, чтобы облегчить или, я был интересно, если вы можете сделать то же самое для этого .. это мой код, как он стоит ..UIImageView анимация вращения с легкостью

- (IBAction)animator:(id)sender 
{ 
    [arrowRotation removeFromSuperview]; 

    //arrow animation 
    arrowRotation = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"arrow.png"]]; 
    arrowRotation.frame = CGRectMake(148.0, 20.0, 30.0, 30.0); 
    [self.view addSubview:arrowRotation]; 



    CABasicAnimation *fullRotation; 
    fullRotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; 
    fullRotation.fromValue = [NSNumber numberWithFloat:0]; 
    fullRotation.toValue = [NSNumber numberWithFloat:((360*M_PI)/180)]; 
    fullRotation.duration = 0.75f; 
    fullRotation.repeatCount = 3; 

    [arrowRotation.layer addAnimation:fullRotation forKey:@"360"]; 
} 

так что мой вопрос я могу сделать эту анимацию замедлить когда дело доходит до 3 вращений .. как легкость из UIView. если это имеет смысл.

всякая помощь была бы принята с благодарностью.

+0

Что именно вы спрашиваете? – pasawaya

ответ

0

Используйте UIView animateWithDuration:delay:options:animations:completion:, чтобы сделать анимацию и используйте опцию UIViewAnimationOptionCurveEaseOut. Это обновленный, предпочтительный метод анимации UIView в iOS, и позволит вам сделать то, что вам нужно.

Docs здесь: http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html

Позвольте мне знать, если у вас есть какие-либо вопросы!

+0

Прохладный .. уступит его сейчас спасибо :) – HurkNburkS

+0

Хорошее предложение. Хотя метод UIMiew 'animateWithDuration: delay: options: animations: completion:' является предпочтительным методом анимации для анимаций UIView, ** ** ** ** ** ** ** не является общим предпочтительным методом анимации. Лучшие методы анимации - это те, что используются в инфраструктуре Core Animation и OpenGL, поскольку они ускоряются аппаратными средствами, что позволяет создавать более сложные анимации, не беспокоясь о производительности. – pasawaya

+0

@qegal Отредактировано, спасибо :) – WendiKidd

2

Прежде всего, в этой строке fullRotation.toValue = [NSNumber numberWithFloat:((360*M_PI)/180)];, ваш поплавок ((360*M_PI)/180) повернет круг на 360 градусов, но ваши цифры немного чрезмерны. Я имею в виду, что вы можете упростить его до 2*M_PI.

Во-вторыхи: Если вы хотите, чтобы настроить это больше, вы можете использовать CAKeyframeAnimation:

CAKeyframeAnimation *rotationAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation"]; 

NSArray *rotationValues = [NSArray arrayWithObjects: [NSNumber numberWithFloat: 0], [NSNumber numberWithFloat: (2*M_PI)], nil]; 

[rotationAnimation setValues:rotationValues]; 

NSArray *rotationTimes = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0f],[NSNumber numberWithFloat:1.0f], nil]; 
[rotationAnimation setKeyTimes:rotationTimes]; 

NSArray *rotationTimingFunctions = [NSArray arrayWithObjects:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear],[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut], nil]; 
[rotationAnimation setTimingFunctions:rotationTimingFunctions]; 

rotationAnimation.fillMode = kCAFillModeForwards; 
rotationAnimation.removedOnCompletion = NO; 
rotationAnimation.duration = 1; 

[self.view.layer addAnimation:rotationAnimation forKey:@"animation"]; 

Надеется, что это помогает!

+0

Прохладный спасибо за то, что помогли мне лучше понять вещи. Я все еще не думаю, что его достижение легкое из того, что я ищу, но все в порядке .. Я все еще пытаюсь научиться анимации. Я только когда-либо делали базовые вызовы UIViews и т. д. Я хочу, чтобы получить некоторые классные вещи сейчас, что у меня есть время, но просто хочу, чтобы я делал все правильно. Спасибо за помощь. – HurkNburkS

+0

@HurkNburkS Если у вас есть дополнительные вопросы о коде или что-то не понимаю, не стесняйтесь спрашивать. – pasawaya

+0

Прохладный человек, спасибо кучи .. просто просматривая некоторые функции в ios Library сейчас .. Я должен быть милым .. но если я это сделаю, я дам вам знать :) – HurkNburkS

Смежные вопросы