【问题标题】:UIScreenEdgePanGestureRecognizer to activate SWRevealViewController pan gestureUIScreenEdgePanGestureRecognizer 激活 SWRevealViewController 平移手势
【发布时间】:2014-10-11 02:01:20
【问题描述】:

我将 SWRevealViewController 用于侧边栏,我必须对上一个和下一个故事使用滑动,对侧边栏使用边缘平移。

我使用 UIScreenEdgePanGestureRecognizer 而不是 PanGestureRecogniser 的原因是因为滑动最终会调用平移手势,从而导致整个页面混乱。我希望有一种方法可以在边缘平移识别器激活而不是使用它时调用平移手势:

[self.view addGestureRecognizer:[MainViewController sharedInstance].revealViewController.panGestureRecognizer];


[[BTHomeViewController sharedInstance].revealViewController.panGestureRecognizer requireGestureRecognizerToFail: left];
[[BTHomeViewController sharedInstance].revealViewController.panGestureRecognizer requireGestureRecognizerToFail: right];

我想使用 SWRevealVC 的委托。如果有其他方法,请给我建议。

UIScreenEdgePanGestureRecognizer *panLeft = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(_handleRevealGesture:)];
[panLeft setEdges:UIRectEdgeLeft];
panLeft.minimumNumberOfTouches = 1;
panLeft.maximumNumberOfTouches = 1;
[self.view addGestureRecognizer:panLeft];

SWRevealVC 的委托方法

// The following methods provide a means to track the evolution of the gesture recognizer.
// The 'location' parameter is the X origin coordinate of the front view as the user drags it
// The 'progress' parameter is a positive value from 0 to 1 indicating the front view location relative to the
// rearRevealWidth or rightRevealWidth. 1 is fully revealed, dragging ocurring in the overDraw region will result in values above 1.
- (void)revealController:(SWRevealViewController *)revealController panGestureBeganFromLocation:(CGFloat)location progress:(CGFloat)progress;
- (void)revealController:(SWRevealViewController *)revealController panGestureMovedToLocation:(CGFloat)location progress:(CGFloat)progress;
- (void)revealController:(SWRevealViewController *)revealController panGestureEndedToLocation:(CGFloat)location progress:(CGFloat)progress;

【问题讨论】:

    标签: ios user-interface uipangesturerecognizer uiswipegesturerecognizer swrevealviewcontroller


    【解决方案1】:

    要用 UIScreenEdgePanGestureRecognizer 替换 UIPanGestureRecognizer 只需这样做:

    • 转到 SWRevealViewController
    • 查找 UIPanGestureRecognizer 并将其替换为 UIScreenEdgePanGestureRecognizer
    • 最重要的设置边

      _panGestureRecognizer.edges = UIRectEdgeLeft;

    【讨论】:

    • 我这样做了,但是我必须说它带来了一个失败。当您想通过滑动关闭屏幕菜单时,它不起作用。我还注意到,当您将菜单展开到将要捕捉到的位置时,菜单会折叠
    猜你喜欢
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-20
    相关资源
    最近更新 更多