2012-11-11 11 views
7

Sto cercando di utilizzare la proprietà CATransition di filter con le nuove animazioni di transizione di iOS 6 (CIBarsSwipeTransition, CICopyMachineTransition, ecc.). Lo CIFilter documentation dice che questi sono disponibili su iOS 6 e nulla sul CATransition documentation dice che la proprietà filter non può essere utilizzata.Utilizzo di CIFilters di transizione per CATransition

Ma non riesco a farli funzionare. Non so se Apple abbia appena omesso di menzionare l'indisponibilità della funzionalità o mi manchi solo qualcosa per farlo funzionare. Ecco come l'ho impostato:

CIFilter *transitionFilter = [CIFilter filterWithName:@"CIBarsSwipeTransition"]; 
[transitionFilter setDefaults]; 

CATransition *transition = [CATransition new]; 
transition.duration = 0.4f; 
transition.filter = transitionFilter; 

[self.view.layer addAnimation:transition forKey:kCATransition]; 

Qualsiasi suggerimento è apprezzato.

risposta

3

Non sono sicuro che sia possibile su iOS. Dalla documentazione CATransition:

Se specificato, il filtro deve supportare entrambi i tasti kCIInputImageKey e kCIInputTargetImageKey ingresso, e la chiave kCIOutputImageKey uscita.

Dalla (sezione costanti) CIFilter documentation (sottolineatura mia)

kCIInputTargetImageKey

Una chiave per un oggetto CIImage che è l'immagine di destinazione per una transizione. Disponibile in OS X v10.5 e versioni successive. Non disponibile in iOS.

esiste il filtro, e inputTargetImage è uno dei tasti di inserimento, ma anche se si crea i dati di immagine di base se stessi e si assegna alle proprietà (che visualizza correttamente nel debugger) allora ancora non si ottiene l'effetto.

Creare lo stesso effetto su OS X è semplice come il codice nella tua domanda. Ho archiviato questo come un radar (13281399).

+0

Puoi fornire un link alla documentazione che menzioni "Non disponibile in iOS?" Le documentazioni che ho inserito nella mia domanda non lo menzionano. Ad ogni modo, ho rinunciato a questo molto tempo fa e ho realizzato la mia implementazione personalizzata. Segnalo come la risposta dato che sembra che tu abbia alzato lo sguardo più di quanto non abbia fatto io per aver archiviato un radar. –

+1

Link aggiunto alla risposta. La sezione delle costanti è in fondo. – jrturton

4

So che domanda è piuttosto vecchio, ma ho ottenuto il mio lavoro seguendo quel link

https://developer.apple.com/library/mac/#documentation/graphicsimaging/conceptual/CoreImaging/ci_tasks/ci_tasks.html

Controllare i 11 passaggi nella sezione "Utilizzo di effetti di transizione" Funziona su iOS e

+0

Conosco questa documentazione e so che questi sono i passaggi per creare singoli frame. Ciò significa che devo sottoclasse 'CATransition' e attuare la transizione da solo? Sembra abbastanza inutile che la proprietà 'filter' esista del tutto. –

Problemi correlati