Sto tentando di ritardare l'animazione dell'opacità e della posizione del livello di 3 secondi utilizzando setBeginTime. Ho chiamato il layer boxLayer. L'animazione sta andando bene tuttavia durante i primi 3 secondi (il layer non dovrebbe ancora essere mostrato) il layer viene visualizzato nella sua posizione finale e opacità. Non dovrebbe. L'animazione di gruppo non risolve il problema. Qualcuno potrebbe aiutare? Vedere codice qui sotto:Cercando di ritardare CABasicAnimazione posizione e opacità del livello di 3 secondi ma
// Create an animation that will change the opacity of a layer
CABasicAnimation *fader = [CABasicAnimation animationWithKeyPath:@"opacity"];
// It will last 1 second and will be delayed by 3 seconds
[fader setDuration:1.0];
[fader setBeginTime:CACurrentMediaTime()+3.0];
// The layer's opacity will start at 0.0 (completely transparent)
[fader setFromValue:[NSNumber numberWithFloat:startOpacity]];
// And the layer will end at 1.0 (completely opaque)
[fader setToValue:[NSNumber numberWithFloat:endOpacity]];
// Add it to the layer
[boxLayer addAnimation:fader forKey:@"BigFade"];
// Maintain opacity to 1.0 JUST TO MAKE SURE IT DOES NOT GO BACK TO ORIGINAL OPACITY
[boxLayer setOpacity:endOpacity];
// Create an animation that will change the position of a layer
CABasicAnimation *mover = [CABasicAnimation animationWithKeyPath:@"position"];
// It will last 1 second and will be delayed by 3 seconds
[mover setDuration:1.0];
[mover setBeginTime:CACurrentMediaTime()+3.0];
// Setting starting position
[mover setFromValue:[NSValue valueWithCGPoint:CGPointMake(startX, startY)]];
// Setting ending position
[mover setToValue:[NSValue valueWithCGPoint:CGPointMake(endX, endY)]];
// Add it to the layer
[boxLayer addAnimation:mover forKey:@"BigMove"];
// Maintain the end position at 400.0 450.0 OTHERWISE IT IS GOING BACK TO ORIGINAL POSITION
[boxLayer setPosition:CGPointMake(endX, endY)];
come di fare un metodo come [auto performSelector: @selector (methodName) withObject: nil afterDelay: 3.0f]; o utilizzando sleep(); –
Il mio problema non è l'animazione ritardata, ma piuttosto il fatto che il livello viene visualizzato prima che inizi l'animazione ritardata. – Armand