iPhone dev: создание выдвижных ящиков, таких как приложения Path и Facebook - PullRequest
34 голосов
/ 02 декабря 2011

Новое приложение Facebook, похоже, покончило с разметкой значков сетки с более интересным настраиваемым разметкой навигации, где в самом нижнем представлении отображаются все параметры (такие как Профиль, Лента новостей, Сообщения и т. Д. Для Facebook) и нажатиена одном из них открывается другой вид, скользящий сверху.Вы можете нажать 3-строчную кнопку, чтобы снова открыть вид снизу, но текущий вид частично виден.Приложение Path также недавно обновлено, чтобы соответствовать этой схеме.

Какой лучший способ воссоздать это?Я искал варианты с открытым исходным кодом, но не нашел их.Three20, похоже, тоже этого не поддерживает.

Ответы [ 10 ]

28 голосов
/ 01 февраля 2012

Другой вариант, который я написал: ECSlidingViewController

Он поддерживает изменения ориентации, такие как Facebook, и сдвиг влево, как Path.

Видео демо: http://vimeo.com/35959384

Код: https://github.com/edgecase/ECSlidingViewController

26 голосов
/ 04 декабря 2011
9 голосов
/ 13 декабря 2011

Я нашел действительно хороший проект на github:

https://github.com/devindoty/DDMenuController

5 голосов
/ 05 февраля 2013

Все, что я видел в Интернете, и то, что рекомендовал Йоси Тагури, слишком сложно.Ящики могут быть получены с помощью очень простой категории для UINavigationController без какого-либо графического актива и без необходимости расширения классов и обратной совместимости с iOS 3.0!

Взгляните на это:

http://code.google.com/p/drawer-navigation-controller/

Вот видео http://www.youtube.com/watch?v=5T-1-_pFbG0

4 голосов
/ 10 августа 2013

Этот проект (не упомянутый выше) выглядит как самый зрелый и отточенный для меня: https://github.com/gotosleep/JASidePanels

Кроме того, кажется, все еще активен.

Редактировать: с тех пор я перешел на: https://github.com/mutualmobile/MMDrawerController, что ИМО является почти идеальной реализацией.

2 голосов
/ 14 марта 2012

если кому-то интересно, какой из вариантов выбрать среди JTReveal и DDMenu, я бы предложил DDMenucontroller вместо JTRevealSidebar (не использовал другие опции, перечисленные @Yosi).Это намного проще, легче и работает именно так, как работает приложение Path (и его легче изменить в соответствии с вашими требованиями).Не видел проблему черного фона, упомянутую @ Henning

2 голосов
/ 06 февраля 2012

Проверьте мой ответ здесь - SplitView, как приложение Facebook на iPhone - которое содержит список кодов с открытым исходным кодом.

1 голос
/ 19 мая 2012

Мой проект FRLayeredNavigationController на GitHub идет примерно в одном направлении.

(Интервал между слоями легко настраивается и, конечно, поддерживает вращение).

Посмотрите демонстрационные видео / скриншоты:

0 голосов
/ 20 августа 2014

Вот тот, который очень легко реализовать и использовать с раскадровками.Он имеет контроль для сжатия, показать скрыть анимацию и направление.

https://github.com/HelloMihai/HMSideDrawerDirectional

0 голосов
/ 14 августа 2013

Вот еще один: PPSlideDrawer.

http://www.localwisdom.com/blog/2013/05/simple-sliding-drawer-implementation-for-ios/

Я проверил ответ @ Ephraim (http://code.google.com/p/drawer-navigation-controller/), потому что с ним довольно легко работать. Проблема в том, чтоКажется, с помощью контроллера выдвижного ящика заключается в том, что движущаяся анимация не следует пальцу пользователя - она ​​автоматизирована. PPSlideDrawer стремится решить эту проблему. Я собираюсь опробовать ее в своем проекте и опубликую некоторые обновления.

Может показаться нарушителем соглашения для некоторых, которые находятся под «TODO»:

  1. Реализовать функцию автоматического открытия.
  2. Реализовать функцию смахивания от края (скореечем просто обнаружить жест панорамирования).
  3. Поддержка альбомной ориентации.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...