Il semble que les menus à balayage latéral deviennent un élément d'interface de plus en plus courant à mesure que de plus en plus d'informations sont entassées dans chaque application iPhone. Facebook l'a inclus dans sa dernière version et la nouvelle application Gmail semble l'inclure également . Je me demandais si quelqu'un avait des idées sur le moyen le plus efficace de développer quelque chose comme ça, car il devient un élément d'interface plus courant. Bien que j'aie mes propres idées sur la façon de construire cela, je suis curieux d'entendre ce que les autres pensent.
objective-c
ios
cocoa-touch
Nick ONeill
la source
la source
Réponses:
Je suis récemment tombé sur cela, je n'ai pas vraiment regardé le code ou testé le contrôle, mais il semble que cela puisse être un point de départ très décent.
jtrevealsidebar
Edit: Le lecteur devrait également jeter un coup d'œil aux autres réponses :)
la source
Il existe une excellente bibliothèque pour cela par Tom Adriaenssen: Inferis / ViewDeck
Il est très facile à utiliser et a un public assez large.
ÉDITER:
Pour quelque chose d'un peu plus léger, consultez: mutualmobile / MMDrawerController
Il n'a pas toutes les fonctionnalités de ViewDeck mais est plus simple à modifier et à étendre.
la source
J'ai créé une bibliothèque pour cela. Il s'appelle MFSideMenu .
Entre autres choses, il comprend la prise en charge de l'iphone + ipad, portrait + paysage, menu sur le côté gauche ou droit, UITabBarController et les gestes de panoramique.
la source
Découvrez MMDrawerController:
MMDrawerController
Nous n'avons pas pu trouver une bibliothèque qui nous plaisait, alors nous avons simplement créé la nôtre.
la source
L' idée clé que vous devez définir le cadre ou le centre de self.navigationController.view . Il y a deux événements que vous devez gérer. (1) barButtonItem appuyez sur . (2) geste panoramique à cause du glissement.
Vous pouvez envoyer le contrôleur de vue en arrière-plan comme ceci:
la source
Encore mieux, JASidePanels . Facilement implémenté et fonctionne pour iPhone et iPad.
Lien Github: JASidePanels
la source
La mise en œuvre de Facebook place un UIPanGestureRecognizer sur UINavigationBar. Permettant ainsi de capturer des balayages là où c'est nécessaire.
Cela permet de faire des choses comme, reconnaître directement la direction du toucher en x / z ainsi que la vitesse à laquelle ils se sont produits.
Un tel type de bricolage avec UIViews (plus d'un à l'écran à la fois avec des tâches évidemment différentes -> donc différents contrôleurs) devrait (je suis tenté de dire qu'il faut) utiliser les nouvelles fonctionnalités de ViewController-Containment d'iOS. Toute implémentation sans cela est tout simplement mauvaise car elle bricole la hiérarchie des vues d'une manière non prévue par Apple.
En passant: si vous êtes vraiment curieux de savoir comment cela peut être fait aussi près que possible de Facebook, consultez le projet que j'ai ouvert sur Github PKRevealController .
la source
Il existe des dizaines de bibliothèques différentes que les développeurs ont créées pour implémenter la navigation de style Facebook / Path pour les applications iOS. Je peux tous les énumérer, mais comme vous avez demandé le meilleur, voici mes deux choix que j'utilise pour implémenter le menu de navigation par balayage latéral:
1) ECSlidingViewController Son très facile à mettre en œuvre et à utiliser également des storyboards. Je n'ai eu aucun problème de mise en œuvre ni reçu d'erreurs ou quoi que ce soit de ce genre. Le lien que j'ai fourni a à peu près toutes les explications pour l'utiliser.
2) SWRevealViewController Cette bibliothèque est facile à utiliser et vous pouvez trouver un tutoriel ICI , qui montre comment l'implémenter avec toutes les explications avec des images. Vous pouvez simplement suivre le tutoriel et me remercier plus tard.
la source
Une autre option est d'utiliser Scringo . Il vous donne un menu latéral comme dans les applications youtube / facebook, ainsi que toutes sortes de fonctionnalités intégrées dans le menu que vous pouvez choisir d'ajouter (par exemple, chat, inviter des amis, etc.)
L'ajout du menu latéral se fait simplement en appelant [ScringoAgent startSession ...] et toute la configuration peut être effectuée sur le site.
la source
Reportez-vous ici, un très bon point de départ: faites glisser la navigation comme facebook et chemin
la source
Cette question est assez populaire mais tout se résume à une importation et une utilisation faciles pour moi ... Voici ce que j'utilise ... SWRevealController .
Je suis surpris que les gens le manquent ... C'est vraiment génial !!! et facile à utiliser. Le développeur inclut même quelques exemples de projets qui vous permettent de voir comment l'utiliser dans différents scénarios.
la source
Un excellent guide pour développer votre propre navigation coulissante dans Swift et Objective-C.
Objectif c
Rapide
la source
Gmail et Facebook font un usage intensif des vues Web, il est donc difficile de dire quel est le code natif et ce qui est rendu HTML. Cependant, en regardant l'interface, il semble qu'ils aient placé un UITableView avec une largeur plus étroite que la largeur de l'écran (320pt) sous un UIView qui contient le contenu qu'ils souhaitent afficher. La sélection de différentes lignes de vue table remplace probablement une sous-vue de la vue de contenu.
Du moins, c'est ainsi que j'aborderais le problème. Il est difficile de dicter ce que cela devrait être. Lancez-vous et commencez à expérimenter!
la source
Si vous voulez, j'ai fait ce repo sur github GSSlideMenu Il vous permet de créer un menu de style Facebook MAIS avec un webView «arrière» (généralement tous les dépôts que j'ai trouvés ont une vue table comme vue «arrière»).
la source
c'est exactement le clone de la barre latérale facebook: bibliothèque GHSidebarNav
très facile à utiliser. l'instruction est en
la source
la vue de droite pourrait être à l'intérieur d'une sous-classe de UIScrollView. Dans cette sous-classe, vous pouvez remplacer
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
pour renvoyer OUI uniquement si l'utilisateur a touché la sous-vue. De cette façon, vous pouvez placer votre UIScrollView transparent sur n'importe quelle autre vue et passer par tout événement tactile qui a lieu en dehors de la sous-vue; et vous obtenez des trucs de défilement gratuitement.Par exemple:
ou:
la source
Essayez d'ajouter votre menu (auquel vous faites glisser votre doigt pour y accéder) sous la vue principale. Commencez à vous abonner pour toucher les événements dans la vue.
Implémentez
touchesMoved:
et vérifiez si le premiergesture
est vertical (faites défiler la vue principale, si nécessaire) ou horizontal (ici, vous voudrez afficher le menu). Si elle est horizontale, commencez à invoquer une autre méthode,- (void)scrollAwayMainView:(NSUInteger)pixels
chaque fois qu'elletouchesMoved:
est appelée, calculez le nombre de pixels éloignés du point de départ de la vue principale et transmettez ce nombre à la méthode. Dans cette implémentation de méthodes, exécutez le code suivant:la source
Découvrez ma solution pour cette question:
Comment créer un menu de diapositives personnalisé sans bibliothèque tierce.?
Une seule classe qu'il vous suffit de sous-classer et de remplir avec du contenu.
Voici la classe. Pour plus de détails, consultez le lien ci-dessus.
la source