Закрытие ECSlidingViewController меню
Я бы хотел реализовать мое скользящее меню таким образом, чтобы при нажатии кнопки "Меню" мое меню отображалось, а при повторном нажатии "Меню" оно скрывалось. Но я не могу понять, как это сделать с ECSlidingViewController. Буду признателен за любую помощь.
3 ответа
ECSlidingViewController имеет методы для этого: anchorTopViewToRightAnimated:
, anchorTopViewToLeftAnimated:
а также resetTopViewAnimated:
,
Пример в вашем контроллере вида сверху:
[self.slidingViewController anchorTopViewToRightAnimated:YES]
ECSlidingViewController предоставляет категорию для UIViewController, добавив это slidingViewController
имущество.
Вы также можете использовать ECSlidingViewController's currentTopViewPosition
чтобы определить, должна ли ваша кнопка показывать ваше меню или скрывать его в текущем контексте.
Я задал этот вопрос, и ответ выше помогает мне решить его. Но мне просто нужно добавить более подробный ответ с примером кода, чтобы другие могли получить выгоду от этого, если столкнулись с такой проблемой.
- (IBAction)showSlidingMenu:(id)sender {
[self.slidingViewController anchorTopViewToRightAnimated:YES];
if ([self.slidingViewController currentTopViewPosition] == ECSlidingViewControllerTopViewPositionAnchoredRight) {
[self.slidingViewController resetTopViewAnimated:YES];
}
}
- Обратите внимание, что я анимирую контроллер вида сверху вправо, поэтому я проверяю, является ли позиция вида сверху ECSlidingViewControllerTopViewPositionAnchoredRight.
- Точно так же позиция вида сверху имеет ECSlidingViewControllerTopViewPositionAnchoredLeft, если вы анимируете влево.
- Если меню не показывает позицию вида сверху, получим ECSlidingViewControllerTopViewPositionCentered.
+1 за вопрос и принятый ответ
Благодарю.
В соответствии с "примером проекта ECSlidingViewController" вам необходимо поместить эти 4 строки в ViewWillAppear FirstTopController(например, TransitionViewController):
self.slidingViewController.topViewAnchoredGesture = ECSlidingViewControllerAnchoredGestureTapping | ECSlidingViewControllerAnchoredGesturePanning;
self.slidingViewController.customAnchoredGestures = @[];
[self.navigationController.view removeGestureRecognizer:self.dynamicTransitionPanGesture];
[self.navigationController.view addGestureRecognizer:self.slidingViewController.panGesture];
Эти 4 строки используются в методе делегата tableview. Возможно, вы не используете tableview, поэтому эти 4 строки не вызывают.
Удачи..