Вы можете попробовать установить анимацию на автореверс вместо создания новой анимации, которая может генерировать более плавный "отскок":
-(void) doPowerChangeAnimUp
{
powerIconChange .alpha = 0;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationRepeatAutoreverses:YES];
[UIView setAnimationRepeatCount:2];
[UIView setAnimationDidStopSelector:@selector(animationDidStop:)];
[UIView setAnimationDelegate:self] ;
[UIView setAnimationDuration:2];
[powerIconChange setAlpha:1];
[UIView commitAnimations];
}
Более того, вместо вызова селектора did stop вы можете увеличить animationRepeatCount
до более высокого значения, чтобы оно охватывало всю вашу анимацию одним beginAnimations
блоком.