Slide entre deux views, à la manière de UINavigationController sur l'iPhone.
Nebuchad34
Membre
J'ai besoin de réaliser une interface "à la front row" et j'aimerai utiliser le même principe que sur l'iPhone.
Je vois bien comment implémenter la chose, j'ai juste un problème à résoudre :
Comment faire un "slide" entre deux NSView (comme le fait le UINavigationController lorsqu'on "push" un autre ViewController)
J'imagine qu' Eaglelouk pourrait me répondre, vu qu'il a mis en place ce genre de choses dans Ecoute.
Je vois bien comment implémenter la chose, j'ai juste un problème à résoudre :
Comment faire un "slide" entre deux NSView (comme le fait le UINavigationController lorsqu'on "push" un autre ViewController)
J'imagine qu' Eaglelouk pourrait me répondre, vu qu'il a mis en place ce genre de choses dans Ecoute.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
La méthode CIImageInView étant à définir dans une catégorie de CIImage à l'aide de initWithBitmapImageRep:
Mais apparemment, il n'est pas possible de faire une transition "slidein-slideout" de cette manière, comme sur l'iPhone, si ?
Je vais regarder ça de plus près à tête reposée. Je viendrais vous donner mes avancements.
Qu'est-ce qui cloche ? voici mon code, j'ai juste adapté ce que tu m'avais donné.
et j'ai fait une catégorie sur CIImage comme suggéré,
J'espère que la méthode suivante est correct :
Peut-être le filtre incomplètement renseigné . Je ferais un NSLog sur transitionFilter à différents endroits pour voir si les paramètres du filtre sont bien renseignés.
Je pensais qu'en dehors de input et target image il y avait des valeurs par défaut.
En plus j'avais pris ça au hasard je ne sais même pas quel genre de tansition ça fait.
Le kCATransitionPush semble parfait, mais comment l'utiliser ?
Y'a rien qui marche. :crackboom:-
cela fait comme une barre semi-ombrée qui dévoile la vue
Quasiment comme dans animeFilter: , en y faisant le changement.
Pour être plus précis, je te réponds un peu plus tard ..
C'est exactement ce que je voulais et c'est très simple à faire.
Pourtant, c'est très exactement ce que je fais dans PortraiMatic.
Et étant donné qu'on peut jouer sur l'alpha avec NSViewAnimation..
Enjoy.
(Tu peux largement simplifier le truc, moi j'ai fait du copier-coller et j'ai changé 2-3 trucs pour chacune des actions)
Je vais comparer avec kCATransitionPush, mais il me semble que NSViewAnimation donne quelque chose d'effectivement plsu proche du fonctionnement de l'iphone !
La difficulté est de déterminer oldDestFrame et newDestFrame, qui sont de la même taille que la frame de la vue, mais décalés de frame.size.width pixels sur la droite ou sur la gauche.
Dans animationDidEnd:, l'ancienne vue est retirée de sa superview, autrement, elle reçoit encore les clics à son ancienne position d'après ce que j'ai pu constater.
Si tu as ton bout de code avec CATransitionPush, ça m'intéresse !
Voilà :
Ensuite, il ne reste plus qu'à faire :
L'animation est plus fluide.