2010-03-09 24 views
5

La documentazione Apple afferma che la chiave di azione Core Animation kCAOnOrderOut ha un unico scopo: animare un livello fuori dalla vista quando diventa nascosta o ha -removeFromSuperlayer chiamato su di esso. Mi riferisco solo a quest'ultimo caso in questa domanda.Come possiamo far funzionare kCAOnOrderOut?

In pratica, quando viene chiamato -removeFromSuperlayer, il livello viene rimosso immediatamente e su di esso non viene eseguita alcuna animazione.

È stato suggerito che questa è una differenza tra i livelli Presentazione e Modello, ma non sono abbastanza esperto in Core Animation per sapere cosa fare di questo.

Se qualcuno può spiegare come forzare l'animazione per eseguire prima lo strato viene rimosso, quando l'animazione viene restituito per la chiave kCAOnOrderOut, sarebbe apprezzato da almeno me e poche altre persone.

Grazie.

risposta

0

Non ho idea di come implementarlo con la chiave kCAOnOrderOut, ma mi sono imbattuto in un problema simile qualche tempo fa. La mia correzione era di impostare l'animazione con una durata specifica e inviare immediatamente un timer ritardato che aspettava lo stesso tempo della durata dell'animazione. Dopo aver attivato il timer, rimuoverei il livello/la vista.

+0

Questo è l'attacco standard che io e tutti gli altri utilizziamo per il momento, sì; ma non dovrebbe essere assolutamente necessario "hackerare" questo; kCAOnOrderOut dovrebbe semplicemente funzionare come documentato. –