web-dev-qa-db-fra.com

Dev iPhone: création de tiroirs coulissants comme les applications Path et Facebook

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.

34
Z S
26
Yosi Taguri

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

Code: https://github.com/edgecase/ECSlidingViewController

28
Michael Enriquez

J'ai trouvé un projet vraiment sympa sur github:

https://github.com/devindoty/DDMenuController

9
andreschneider

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

5
Ephraim

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.

4
mxcl

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

2
Nitin Alabur

Vérifiez ma réponse ici - SplitView comme l'application Facebook sur iPhone - qui contient une liste de codes open-source.

2
Sagar

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:

1
Johannes Weiss

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:"

  1. Implémentez la fonctionnalité d'ouverture automatique.
  2. Implémentez le balayage depuis la fonctionnalité Edge (plutôt que de simplement détecter le mouvement de panoramique).
  3. Prise en charge du paysage.
0
Matthew Quiros

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.

https://github.com/HelloMihai/HMSideDrawerDirectional

0
mihai