iPhone uiimageview를 사용하여 스케일 애니메이션을 어떻게 체인합니까?

StackOverflow https://stackoverflow.com/questions/617992

문제

이미지를 축소하고 이미지를 변경 한 다음 다시 확장하려고합니다.

CABasicAnimation* shrink = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
shrink.toValue = [NSNumber numberWithDouble:0];
shrink.duration = 1;
    shrink.delegate = self;
    [myImageView.layer addAnimation:shrink forKey:@"shrink"];   

축소를 한 다음 완료되면 이미지를 변경하고 성장을 시작합니다.

- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag 
{
    myImageView.image = [images objectAtIndex:image];
CABasicAnimation* grow = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
grow.toValue = CGAffineTransformMakeScale(1,1);
    grow.delegate = self;
grow.duration = 1;
[myImageView.layer addAnimation:grow forKey:@"grow"];   
}

이것은 시뮬레이터에서 훌륭하게 작동하지만 장치에서는 수축이 완료되면 전체 크기의 오래된 이미지를 플래시하고 성장 애니메이션은 새로운 이미지로 시작됩니다.

그 플래시를 제거하는 방법이 있습니까?

( "removedonCompletion = no;"를 시도했고 첫 번째 완료 후 스케일링 된 다운 크기와 동일하게 Affinetransform을 설정하려고 시도했지만 운이 좋지 않았습니다.)

모든 팁에 감사드립니다.

KB

편집하다:

훌륭한! 다음 설정 :

shrink.fillMode = kCAFillModeForwards; 
shrink.removedOnCompletion = NO; 

깜박임을 제거했습니다. 고마워요, 벤!

도움이 되었습니까?

해결책

애니메이션을 설정해보십시오 fillMode 에게 kCAFillModeForwards. 그것은 이전보다는 애니메이션의 끝에있는 것처럼 아이템을 남겨 두어야합니다.

다른 팁

AnimationDidStop 메소드에서 다른 동굴을 만들려고했을 때도 같은 문제가있었습니다. CakeyFrameAnimation을 사용하는 것이 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top