J'essaie d'utiliser la propriété filter
CATransition
avec les nouvelles animations de transition iOS 6 (CIBarsSwipeTransition, CICopyMachineTransition, etc.). La documentation de CIFilter
indique que ceux-ci sont disponibles sur iOS 6, et rien dans la documentation de CATransition
dit que la propriété filter
ne peut pas être utilisée.
Mais, je n'arrive pas à les faire travailler. Je ne sais pas si Apple a juste omis de mentionner l'indisponibilité de la fonctionnalité ou je manque juste quelque chose pour le faire fonctionner. Voici comment je l'ai mis en place:
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];
Tous les pointeurs sont appréciés.
Je ne suis pas sûr que ce soit possible sur iOS. De la documentation de CATransition:
Si spécifié, le filter doit prendre en
kCIInputTargetImageKey
les keys d'inputkCIInputImageKey
etkCIInputTargetImageKey
, ainsi que lakCIOutputImageKey
sortiekCIOutputImageKey
.
De la documentation de CIFilter (section constantes) (emphase mienne)
kCIInputTargetImageKey
Une key pour un object CIImage qui est l'image cible pour une transition. Disponible dans OS X v10.5 et versions ultérieures. Non disponible sur iOS .
Le filter existe et inputTargetImage
est l'une des keys d'input, mais même si vous créez vous-même datatables de l'image principale et que vous les affectez aux propriétés (qui s'affichent correctement dans le débogueur), vous n'obtenez toujours pas l'effet.
Créer le même effet sur OS X est aussi simple que le code de votre question. J'ai classé cela comme un radar (13281399).
Je sais que cette question est assez ancienne, mais j'ai travaillé à la mienne en suivant ce lien
Vérifiez les 11 étapes dans la section "Utilisation des effets de transition" cela fonctionne aussi sur iOS