Domanda

Vorrei eseguire una dissolvenza in entrata e in uscita da un UIImageView utilizzando tempi diversi, diciamo, utilizzando i seguenti parametri:

  • t = 0...Alfa di UIImageView = 0
  • t = 0,5 s...Alfa di UIImageView = 0,7
  • t = 0,7 s...Alfa di UIImageView = 0

È possibile farlo con CAAnimation o altro metodo?Come può essere fatto?

Grazie per qualsiasi aiuto!

È stato utile?

Soluzione

Probabilmente si dovrebbe guardare in CAKeyframeAnimation. Sarà consentono di impostare i valori per più punti di tempo.

Altri suggerimenti

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];
}

spero che sia d'aiuto

UIView ha un setAnimationDidStopSelector: metodo che è possibile utilizzare. È sufficiente configurare il fade in animazione utilizzando un blocco beginAnimations e impostare il selettore didStop ad un altro metodo che contiene solo il fade out blocco animazione. Ognuno di questi blocchi di animazione possono avere durate diverse di animazione.

Qualcosa di simile a questo:

    [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];
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top