Как я могу использовать panGestureRecognizer открыть sideMenu, если у меня уже есть какие-то другие жесты салфетки в frontViewController (в моем случае это HomescreenViewController)? Мой frontViewController содержит pageViewController с 5 страницами. С левой стороны сабвуфера и правый салфетки уже включены для pageViewController.SWRevealViewController panGestureRecognizer с pageViewController прошивкой (меню сбоку на прикосновении)
Я использовал следующий код в viewDidLoad из frontViewController:
_sideButton.target = self.revealViewController; _sideButton.action = @selector(revealToggle:); [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer]; [self.view addGestureRecognizer:self.revealViewController.tapGestureRecognizer];
Это не будет делать работу вместе с правым движением pageViewController. Затем я использую этот код:
self.revealViewController.draggableBorderWidth = self.view.frame.size.width/2;
Но это тоже не working.I я использую последнюю версию SWRevealViewController 2.4.0
Это мнение иерархия моей frontViewController. HomescreenViewController> pagerView> PageviewController> listingViewController
Кроме того, при появлении меню сбоку, то часть frontviewController активна, и когда я пытаюсь закрыть боковое меню, проведя пальцем влево, он распознает его как pageviewcontroller салфетки. Я надеюсь, что решение первой проблемы также решит это.
UPDATE (ответ): Look принял ответ на номер вопроса 2. Для первого вопроса, если вы столкнулись с такой проблемой, как у меня, просто создать представление с шириной 20 пикселей в направлении влево с помощью кода ниже и добавьте panGestureRecognizer к этому представлению (в viewWillAppear
).
SWSwipeViewForPanGesture=[[UIView alloc]initWithFrame:CGRectMake(0, 0,20, self.view.frame.size.height)];
_SWSwipeViewForPanGesture.backgroundColor=[UIColor clearColor];
[self.view addSubview:_SWSwipeViewForPanGesture];
[_SWSwipeViewForPanGesture addGestureRecognizer:self.revealViewController.panGestureRecognizer];
Кроме того, я должен добавить следующий код в - (void)revealController:(SWRevealViewController *)revealController didMoveToPosition:(FrontViewPosition)position
Этот метод является делегатом method.So, вы должны подтвердить делегату в viewdidload.
[_SWSwipeViewForPanGesture addGestureRecognizer:self.revealViewController.panGestureRecognizer];
[self.view bringSubviewToFront:_SWSwipeViewForPanGesture];
Thats it.It просто работает!
Спасибо за ответ Bhumica. Вторая проблема решена. Есть ли способ отключить правку на странице viewcontroller, когда индекс равен нулю? Или мы можем добавить прозрачный вид (например, вы только что сделали) в левый конец HomescreenViewController и добавив в него opensController.panGestureRecognizer? – abhi1992
В Ipad splitviewcontroller я увидел приложение, в котором, когда мы находимся в индексе 0, жестом салфетки работает, чтобы вывести меню вперед. – abhi1992
@ abhi1992, но если вы поместите прозрачный вид на индекс страницы 0, чем вы бы проложили, чтобы перейти на следующую страницу.? – BHUMICA