Просмотр страниц с боковым меню (панель навигации)

Я использую https://github.com/romaonthego/REFrostedViewController в качестве контроллера бокового меню, проблема в том, что это меню будет отображаться из любой точки экрана, я хочу, чтобы оно было похоже на версию Android, которая появится только в том случае, если вы начнете смахивать с начала слева от экрана, если смахиваете из любой другой точки меню не появится.

Я хочу это, потому что у меня есть просмотрщик страниц внутри этого меню. Поскольку я новичок в IOS, я заглянул внутрь кода библиотеки и не нашел ни одной функции, определяющей начальную точку, а также попытался изменить сообщение panGestureRecognized, что оно не работает.

Поэтому я хотел бы предложить мне помощь или любую другую библиотеку, у которой есть опция.

1 ответ

Решение

Если вы следили за этой библиотекой, то я думаю, что вы также поместили этот код

In ViewDidLoad

    [self.view addGestureRecognizer:[[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureRecognized:)]];

And 

- (void)panGestureRecognized:(UIPanGestureRecognizer *)sender
{
    // Dismiss keyboard (optional)
    //
    [self.view endEditing:YES];
    [self.frostedViewController.view endEditing:YES];

    // Present the view controller
    //
    [self.frostedViewController panGestureRecognized:sender];
}

Замените вышеуказанный код следующим кодом.

Confirm UIGestureRecognizerDelegate Delegate protocol

@interface DEMONavigationController () <UIGestureRecognizerDelegate>

In ViewDidLoad

    UIScreenEdgePanGestureRecognizer *leftEdgeGesture = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(handleLeftEdgeGesture:)];
    leftEdgeGesture.edges = UIRectEdgeLeft;
    leftEdgeGesture.delegate = self;
    [self.view addGestureRecognizer:leftEdgeGesture];}

And
- (void)handleLeftEdgeGesture:(UIScreenEdgePanGestureRecognizer *)gesture {

    if(UIGestureRecognizerStateBegan == gesture.state ||
       UIGestureRecognizerStateChanged == gesture.state) {
        [self.frostedViewController presentMenuViewController];


    }else{
        // DO nothing
    }
}
Другие вопросы по тегам