2010-02-17 1 views
1

와있는 UIImageView 페이드 아웃, 다음 매개 변수를 사용하여,의 말을하자IPHONE - 나는과 다른 시간을 사용하여 UIImageView에 밖으로 페이드를 할 싶습니다 페이드와 다른 시간

  • t = 0 ...있는 UIImageView의 알파 =
  • 톤 = 0.5 초 0 ...있는 UIImageView의 알파 = 0.7
  • 톤 = 0.7s ...있는 UIImageView의 알파 = 0

는 CAAnimation 또는 기타와 함께 할이 가능 방법? 어떻게 할 수 있습니까?

도움을 주셔서 감사합니다!

답변

3

아마도 CAKeyframeAnimation을 조사해야합니다. 여러 시점에 대한 값을 설정할 수 있습니다.

+0

감사합니다 도움이되기를 바랍니다 – SpaceDog

2

UIView에는 사용할 수있는 setAnimationDidStopSelector : 메소드가 있습니다. beginAnimations 블록을 사용하여 애니메이션의 페이드를 설정하고 didStop 선택기를 페이드 아웃 애니메이션 블록 만 포함하는 다른 메서드로 설정하면됩니다. 이러한 애니메이션 블록은 각각 다른 애니메이션 지속 시간을 가질 수 있습니다. 이 같은

뭔가 :

[UIView beginAnimations:next context:context]; 
    [UIView setAnimationDuration:0.5]; 
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDidStopSelector:@selector(fadeOut:finished:context:)]; 
    myView.alpha = 0.7; 
    [UIView commitAnimations]; 

-(void)fadeOut:(NSString*)animationID finished:(BOOL)finished context:(void*)context { 
    [UIView beginAnimations:nil context:context]; 
    [UIView setAnimationDuration:0.2]; 
    myView.alpha = 0.0; 
    [UIView commitAnimations]; 
} 
+0

고마워요.하지만 이걸 시도해 보았습니다. 첫 번째와 두 번째 부분 사이에 밀리 초 동안 애니메이션이 정지합니다. 그것은 연속적이어야합니다. – SpaceDog

6
if (imgDefault.alpha == 0.0) { 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
     [UIView beginAnimations:nil context:context]; 
     [UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; 
     [UIView setAnimationDuration: 3.0]; 
     [UIView setAnimationDelegate: self]; 
     imgDefault.alpha = 1.0; 
     [UIView commitAnimations]; 
} 
else { 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
     [UIView beginAnimations:nil context:context]; 
     [UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; 
     [UIView setAnimationDuration: 3.0]; 
     [UIView setAnimationDelegate: self]; 
     imgDefault.alpha = 0.0; 
     [UIView commitAnimations]; 
} 

그것은 !!!!!!!!!

관련 문제