2014-02-10 2 views
0

Я сегодня играю с CABasicAnimation и CAAnimationGroup, и я уже влюблен в нее. У меня есть пара основных анимаций, в которых форма круга сжимается, а также уменьшена до округлой квадратной формы, как приложение «Голосовые заметки» в iOS 7.CABasicAnimation анимирует, но рама представлений не является постоянной

Ниже приведен код его.

CABasicAnimation *corner = [CABasicAnimation animationWithKeyPath:@"cornerRadius"]; 
corner.timingFunction = [CAMediaTimingFunction  functionWithName:kCAMediaTimingFunctionLinear]; 
corner.fromValue = [NSNumber numberWithFloat:recordingShape.layer.cornerRadius]; 
corner.toValue = [NSNumber numberWithFloat:30.0f]; 
corner.duration = 1.0; 


//shrinking - scaling 
CABasicAnimation* shrink = [CABasicAnimation animationWithKeyPath:@"transform.scale"]; 
shrink.toValue = [NSNumber numberWithDouble:0.5]; 
shrink.duration = 0.5; 


// Two animations concurrently so set up CAAnimationGroup 
CAAnimationGroup *group = [CAAnimationGroup animation]; 
[group setDuration:0.5]; 
[group setAnimations:[NSArray arrayWithObjects:shrink, corner, nil]]; 

// Animate the layer 
[[recordingShape layer] addAnimation:group forKey:@"bounceAndFade"]; 

анимация происходит хорошо, как ожидалось, но после анимации он возвращается в исходное состояние, как круглый круг, кто-то может вести меня, как я могу оставаться кадр слоя?

Спасибо.

ответ

0

Ну, я не знал, что вы можете настроить делегат для группы CAAnimationGroup, поэтому я изменяю фактический angleRadius и преобразую при вызове animationDidStop.

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

  • Нет связанных вопросов^_^