1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/qmy3-RESideMenu

Клонировать/Скачать
README.md 13 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 27.11.2024 18:56 ed0bd46

RESideMenu

Боковое меню в стиле iOS 7/8 с эффектом параллакса, вдохновлённое кадрами Dribbble (первый и второй).

С версии 4.0 вы можете добавлять контроллеры вида меню как с левой, так и с правой стороны от вашего контроллера вида контента.

Скриншот RESideMenu Скриншот RESideMenu

Требования

  • Xcode 6 или выше
  • Компилятор Apple LLVM
  • iOS 6.0 или выше
  • ARC

Демо

Создайте и запустите проект RESideMenuExample в Xcode, чтобы увидеть RESideMenu в действии. Для демонстрации интеграции с раскадровками создайте и запустите RESideMenuStoryboardsExample.

Установка

CocoaPods

Рекомендуемый подход к установке RESideMenu — через менеджер пакетов CocoaPods, поскольку он обеспечивает гибкое управление зависимостями и простую установку. Для достижения наилучших результатов рекомендуется устанавливать через CocoaPods >= 0.28.0 с использованием Git >= 1.8.0, установленного через Homebrew.

Установите CocoaPods, если он ещё не доступен:

$ [sudo] gem install cocoapods
$ pod setup

Перейдите в каталог вашего проекта Xcode:

$ cd /path/to/MyProject
$ touch Podfile
$ edit Podfile

Отредактируйте свой Podfile и добавьте RESideMenu:

platform :ios, '6.0'
pod 'RESideMenu', '~> 4.0.7'

Установите в свой проект Xcode:

$ pod install

Откройте свой проект в Xcode из файла .xcworkspace (не обычного файла проекта):

$ open MyProject.xcworkspace

Обратите внимание, что если установка не удалась, это может быть связано с тем, что вы устанавливаете версию Git ниже, чем ожидает CocoaPods. Убедитесь, что у вас установлен Git >= 1.8.0, выполнив команду git --version. Вы можете получить полную картину деталей установки, выполнив pod install --verbose.

Ручная установка

Всё, что вам нужно сделать, это добавить файлы RESideMenu в ваш проект и добавить #include "RESideMenu.h" в начало классов, которые будут его использовать.

Пример использования

В вашем AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions создайте контроллер вида и назначьте контроллеры контента и меню.

// Create content and menu controllers
//
DEMONavigationController *navigationController = [[DEMONavigationController alloc] initWithRootViewController:[[DEMOHomeViewController alloc] init]];
DEMOLeftMenuViewController *leftMenuViewController = [[DEMOLeftMenuViewController alloc] init];
DEMORightMenuViewController *rightMenuViewController = [[DEMORightMenuViewController alloc] init];

// Create side menu controller
//
RESideMenu *sideMenuViewController = [[RESideMenu alloc] initWithContentViewController:navigationController
                                                                leftMenuViewController:leftMenuViewController
                                                               rightMenuViewController:rightMenuViewController];
sideMenuViewController.backgroundImage = [UIImage imageNamed:@"Stars"];

// Make it a root controller
//
self.window.rootViewController = sideMenuViewController;

Представьте контроллер вида меню:

[self.sideMenuViewController presentLeftMenuViewController];

или

[self.sideMenuViewController presentRightMenuViewController];

Переключите контроллеры видов контента:

#import <RESideMenu/RESideMenu.h>

....

[self.sideMenuViewController setContentViewController:viewController animated:YES];
[self.sideMenuViewController hideMenuViewController];

Пример раскадровок

  1. Создайте подкласс RESideMenu. В этом примере мы называем его DEMORootViewController.
  2. В раскадровке назначьте владельца корневого представления как DEMORootViewController.
  3. Обязательно #import "RESideMenu.h" в DEMORootViewController.h.
  4. Добавьте больше видов. Контроллеры в вашем Storyboard и присвоение им идентификаторов «leftMenuViewController», «rightMenuViewController» и «contentViewController»

Контроллеры добавляются на ваш Storyboard, и им присваиваются идентификаторы «leftMenuViewController», «rightMenuViewController» и «contentViewController». Обратите внимание, что в новом XCode идентификатор называется «Storyboard ID» и его можно найти в инспекторе Identity.

5. Добавьте метод awakeFromNib в DEMORootViewController.m со следующим кодом:

- (void)awakeFromNib
{
    self.contentViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"contentViewController"];
    self.leftMenuViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"leftMenuViewController"];
    self.rightMenuViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"rightMenuViewController"];
}

Кастомизация

Вы можете настроить следующие свойства RESideMenu:

@property (assign, readwrite, nonatomic) NSTimeInterval animationDuration;
@property (strong, readwrite, nonatomic) UIImage *backgroundImage;
@property (assign, readwrite, nonатомный) BOOL panGestureEnabled;
@property (назначить, readwrite, неатомический) BOOL panFromEdge;
@property (назначение, readwrite, неатомическое) NSUInteger panMinimumOpenThreshold;
@property (назначение, readwrite, неатомическое) BOOL interactivePopGestureRecognizerEnabled;
@property (назначение, readwrite, неатомическое) BOOL scaleContentView;
@property (назначение, readwrite, неатомическое) BOOL scaleBackgroundImageView;
@property (назначение, readwrite, неатомическое) BOOL scaleMenuView;
@property (назначение, readwrite, неатомическое) BOOL contentViewShadowEnabled;
@property (назначение, readwrite, неатомическое) UIColor *contentViewShadowColor;
@property (назначение, readwrite, неатомическое) CGSize contentViewShadowOffset;
@property (назначение, readwrite, неатомическое) CGFloat contentViewShadowOpacity;
@property (назначение, readwrite, неатомическое) CGFloat contentViewShadowRadius;
@property (назначение, readwrite, неатомическое) CGFloat contentViewScaleValue;
@property (назначение, readwrite, неатомическое) CGFloat contentViewInLandscapeOffsetCenterX;
@property (назначение, readwrite, неатомическое) CGFloat contentViewInPortraitOffsetCenterX;
@property (назначение, readwrite, неатомическое) CGFloat parallaxMenuMinimumRelativeValue;
@property (назначение, readwrite, неатомическое) CGFloat parallaxMenuMaximumRelativeValue;
@property (назначение, readwrite, неатомическое) CGFloat parallaxContentMinimumRelativeValue;
@property (назначение, readwrite, неатомическое) CGFloat parallaxContentMaximumRelativeValue;
@property (назначение, readwrite, неатомическое) CGAffineTransform menuViewControllerTransformation;
@property (назначение, readwrite, неатомическое) BOOL parallaxEnabled;
@property (назначение, readwrite, неатомическое) BOOL bouncesHorizontally;
@property (назначение, readwrite, неатомическое) UIStatusBarStyle menuPreferredStatusBarStyle;
@property (назначение, readwrite, неатомическое) BOOL menuPrefersStatusBarHidden;

Если вы устанавливаете backgroundImage, не забудьте установить цвет фона контроллера меню View на прозрачный цвет.

Вы можете реализовать протокол RESideMenuDelegate, чтобы получать следующие сообщения:

- (void)sideMenu:(RESideMenu *)sideMenu didRecognizePanGesture:(UIPanGestureRecognizer *)recognizer;
- (void)sideMenu:(RESideMenu *)sideMenu willShowMenuViewController:(UIViewController *)menuViewController;
- (void)sideMenu:(RESideMenu *)sideMenu didShowMenuViewController:(UIViewController *)menuViewController;
- (void)sideMenu:(RESideMenu *)sideMenu willHideMenuViewController:(UIViewController *)menuViewController;
- (void)sideMenu:(RESideMenu *)sideMenu didHideMenuViewController:(UIViewController *)menuViewController;

Контакты

Роман Ефимов

Лицензия

RESideMenu доступен по лицензии MIT.

Copyright © 2013 Роман Ефимов.

Настоящим предоставляется разрешение любому лицу, получившему копию данного программного обеспечения и связанных с ним файлов документации («Программное обеспечение»), на использование Программного обеспечения без ограничений, включая без ограничения права на использование, копирование, изменение, объединение, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также на разрешение Лица, которым предоставляется программное обеспечение, могут использовать его при соблюдении следующих условий:

В все копии или существенные части программного обеспечения должно быть включено вышеуказанное уведомление об авторских правах и данное разрешение.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ И ОТСУТСТВИЯ НАРУШЕНИЙ ПРАВ ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УЩЕРБ ИЛИ ДРУГИЕ ОБЯЗАТЕЛЬСТВА, ВОЗНИКАЮЩИЕ В РЕЗУЛЬТАТЕ ДЕЙСТВИЯ КОНТРАКТА, ДЕЛИКТА ИЛИ ИНЫМ ОБРАЗОМ, СВЯЗАННЫЕ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ ИНЫМИ ОПЕРАЦИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/qmy3-RESideMenu.git
git@api.gitlife.ru:oschina-mirror/qmy3-RESideMenu.git
oschina-mirror
qmy3-RESideMenu
qmy3-RESideMenu
master