Je suis en train de réaliser l'effet suivant:
Un UICollectionView
affiche une grille de cellules pour un type parent de l'objet, de l'e. g. un album photo. Quand je me tape un de ces éléments, je voudrais faire défiler l'élément vers le haut de l'écran et ouvrir un Tremplin comme dossier d'elle. À l'intérieur de cette zone des dossiers, une autre collection devrait être montré, comprenant le détail des articles, j'. e. les photos de cet album. Tapant dans le reste de l' "parent" se ferme à nouveau le dossier. Voir ce schéma:
Ce que j'ai fait jusqu'à présent est un régulier de la vue de collection pour les albums. Lorsque je sélectionne un, il passe à l'élément sélectionné vers le haut, puis utilise JWFolders
pour ouvrir un dossier vide à cet endroit. Une fois que c'est indiqué, je déclencher les environs UINavigationController
pour pousser mon 2ème-vue-contrôleur avec le détail des articles. Que l'on est jeté hors de sorte qu'il apparaît à l'utilisateur comme si c'était toujours le même point de vue.
Il y a plusieurs problèmes avec cette approche, et je voudrais savoir comment faire mieux:
JWFolders prend une capture d'écran animés et les deux moitiés de vers le haut/vers le bas pour atteindre l'ouverture de l'effet. C'est ok, mais assez lent sur un iPad3, car il se déplace beaucoup de pixels et l'iPad3 du GPU n'est pas tout à fait à la hauteur.
Le 2ème doit être au pixel près pour le match au sommet de la première. C'est le risque de rupture accidentelle.
Je suis limité à ce que les animations sont possibles pour le point de vue du contrôleur de transition. La valeur par défaut
UINavigationController
s'pousser à partir de la droite n'est pas convenable. Je remplace que de faire un fondu enchaîné, mais il est encore loin d'être idéale.
Je voudrais obtenir des indications sur la manière d'aborder ce problème dans un maintenable manière qui ne nécessite pas de beaucoup de créativité piratage à l'encontre de ce que les cadres sont conçus pour faire. J'ai peut-être raté quelque chose ici évidente, de sorte que des pointeurs vers des exemples ou des conseils généraux sont appréciés.
Mise à jour:
J'ai changé l'approche un peu. Maintenant, j'utilise un conteneur de-vue-contrôleur qui dispose de deux intégré de collecte de vue des contrôleurs. Pour la "Album" et une pour les "Photos" de la partie du bas. À l'aide d'un UIImageView
dans le milieu entre les deux, je peux obtenir le triangle pointant vers le haut fait. Cela est aussi agréable à partir d'un entretien de point de vue, car il facilite l'entretien avec les deux collections traitées de manière totalement séparée.
L'application utilise la Mise en page Automatique, afin que je puisse modifier la quantité d'espace chacun des deux des vues intégrées prend en modifiant les contraintes. C'est de manière plus rapide que la capture d'écran de l'approche fondée sur les JWFolders et fonctionne très bien sur un iPad3 ainsi.
Ce presque me rend là où je veux être. La seule chose qui reste est d'obtenir l'ouverture d'animation de droit. Je voudrais simultanément faire défiler les Albums de collection, de sorte que l'élément taraudé va vers le haut et d'élargir la collection de photos avec le triangle pointant à l'Album de la cellule.
Je peux en quelque sorte "se connecter" la vue du bas de la cellule via des contraintes de mise en forme, de sorte que l' scrollToItemAtIndexPath:atScrollPosition:animated:
appel traîne la vue du bas de l'ouvrir?