La nouvelle application Facebook semble avoir supprimé la disposition des icônes de grille, avec une disposition de navigation personnalisée plus intéressante où la vue la plus en bas montre toutes les options (comme le profil, le fil d'actualité, les messages, etc. pour Facebook) et en cliquant sur l'une des eux apporte une autre vue glissant sur le dessus. Vous pouvez appuyer sur le bouton à 3 lignes pour exposer à nouveau la vue de dessous, mais la vue actuelle est partiellement visible. L'application Path a également été récemment mise à jour pour correspondre à ce schéma.
Quelle est la meilleure façon de recréer cela? J'ai cherché des options open-source mais je ne les ai pas trouvées. Three20 ne semble pas non plus soutenir cela.
Essayez-les depuis Cocoa Controls:
JTRevealSidebar http://cocoacontrols.com/platforms/ios/controls/jtrevealsidebar
clcascade http://cocoacontrols.com/platforms/ios/controls/clcascade
StackScrollView http://cocoacontrols.com/platforms/ios/controls/stackscrollview
Beaucoup plus sur le même site comme: http://cocoacontrols.com/platforms/ios/controls/mfslidingnavigationcontrollerhttp://cocoacontrols.com/platforms/ios/controls/psstackedview
Une autre option que j'ai écrite: ECSlidingViewController
Il prend en charge les changements d'orientation comme Facebook et le glissement vers la gauche comme Path.
Démo vidéo: http://vimeo.com/35959384
J'ai trouvé un projet vraiment sympa sur github:
Tout ce que j'ai vu sur Internet et ceux recommandés par Yosi Taguri sont bien trop compliqués. Les tiroirs peuvent être réalisés par une catégorie très simple pour UINavigationController sans aucun élément graphique ni aucune extension de classe nécessaire, et rétrocompatible avec iOS 3.0!
Jetez un oeil à ceci:
http://code.google.com/p/drawer-navigation-controller/
Voici une vidéo http://www.youtube.com/watch?v=5T-1-_pFbG
Ce projet (non mentionné ci-dessus) me semble le plus mature et le plus raffiné: https://github.com/gotosleep/JASidePanels
En outre, semble toujours être actif.
Edit: J'ai depuis fait la transition vers: https://github.com/mutualmobile/MMDrawerController dont IMO est une implémentation presque parfaite.
si quelqu'un se demande lequel choisir parmi JTReveal et DDMenu, je suggère DDMenucontroller sur JTRevealSidebar (je n'ai pas utilisé les autres options répertoriées par @Yosi). C'est beaucoup plus simple, plus léger et fonctionne exactement de la même façon que l'application Path (et il est plus facile de le modifier selon vos besoins). Havent vu le problème de fond noir mentionné par @Henning
Vérifiez ma réponse ici - SplitView comme l'application Facebook sur iPhone - qui contient une liste de codes open-source.
Mon projet FRLayeredNavigationController sur GitHub va dans le même sens.
(L'espacement entre les couches est facilement configurable et il prend en charge la rotation bien sûr).
Jetez un œil aux vidéos de démonstration/captures d'écran:
En voici un autre: PPSlideDrawer.
http://www.localwisdom.com/blog/2013/05/simple-sliding-drawer-implementation-for-ios/
J'ai vérifié la réponse de @ Ephraim ( http://code.google.com/p/drawer-navigation-controller/ ) car cela semble assez facile à travailler. Le problème, semble-t-il, avec le contrôleur de navigation de tiroir est que l'animation de balayage ne suit pas le doigt de l'utilisateur - elle est automatisée. PPSlideDrawer vise à résoudre ce problème. Je suis sur le point de l'essayer dans mon projet et publierai quelques mises à jour.
Pourrait être un dealbreaker pour certains que les éléments suivants sont toujours sous "TODO:"
- Implémentez la fonctionnalité d'ouverture automatique.
- Implémentez le balayage depuis la fonctionnalité Edge (plutôt que de simplement détecter le mouvement de panoramique).
- Prise en charge du paysage.
En voici un qui est très facile à implémenter et à utiliser avec les storyboards. Il a le contrôle de la réduction, de l'affichage des animations de masquage et de la direction.