Запускать и останавливать анимацию с CABasicAnimation iphone - PullRequest
2 голосов
/ 30 апреля 2011

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

-(IBAction) btnClicked{

CABasicAnimation *fullRotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
fullRotation.fromValue = [NSNumber numberWithFloat:0];
fullRotation.toValue = [NSNumber numberWithFloat:((360*M_PI)/180)];
fullRotation.duration = 6;
fullRotation.repeatCount = 1e100f;
fullRotation.delegate = self;
[imgView.layer addAnimation:fullRotation forKey:@"360"];
[imgView.layer setSpeed:3.0];
}

с этим кодом анимация запущена, но я не знаю, как остановить эту анимацию через 5 секунд.

1 Ответ

1 голос
/ 30 апреля 2011

Даже не работайте с CoreAnimation. Я думаю, что это можно сделать с помощью анимации UIView, которую проще программировать. Посмотрите на документы UIView и попробуйте анимацию блоков (при условии, что ios4.0. Если нет, используйте старый стиль).

Посмотрите на http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/AnimatingViews/AnimatingViews.html%23//apple_ref/doc/uid/TP40009503-CH6-SW1 для документов по анимации UIView. Установите свойство transform для вращения, используя CGAffineTransformMakeRotation

Вот анимированный поворот на основе UIView:

- (void)viewDidLoad {
[super viewDidLoad];
UIView *v = [[[UIView alloc] initWithFrame:CGRectMake(50, 50, 100, 100)] autorelease];
v.backgroundColor = [UIColor blueColor];
[self.view addSubview:v];
[UIView animateWithDuration:5 animations:^{v.transform=CGAffineTransformMakeRotation(M_PI);}];

}

...