【问题标题】:Pagecontrol gesture conflict with swrevealcontroller?Pagecontrol 手势与 swrevealcontroller 冲突?
【发布时间】:2016-05-30 03:01:39
【问题描述】:

我在我的应用程序中添加了 swrevealcontroller。单击表中的项目时,它会打开一个新的视图控制器。我在该视图控制器中添加了一个 pageControl。所以首先pagecontrol 的时间平移手势有效,但下次平移手势不适用于页面控制。请告诉我如何避免平移手势冲突。

- (void)_handleRevealGesture:(UIPanGestureRecognizer *)recognizer
{
    NSLog(@"handle pan gesture");
    CGPoint velocity = [recognizer velocityInView:self.view]; if(velocity.x > 0)
    {
        NSLog(@"gesture went right");
    }
    else
    {
        NSLog(@"gesture went left");
        if(self.isReaveled)
        {
            switch ( recognizer.state )
            {


                case UIGestureRecognizerStateBegan:
                    [self _handleRevealGestureStateBeganWithRecognizer:recognizer];
                    break;

                case UIGestureRecognizerStateChanged:
                    [self _handleRevealGestureStateChangedWithRecognizer:recognizer];
                    break;

                case UIGestureRecognizerStateEnded:
                    [self _handleRevealGestureStateEndedWithRecognizer:recognizer];
                    break;

                case UIGestureRecognizerStateCancelled:
                    //case UIGestureRecognizerStateFailed:
                    [self _handleRevealGestureStateCancelledWithRecognizer:recognizer];
                    break;

                default:
                    break;
            }

        }
    }


}

我已经修改了上面的代码以便工作,但它不能工作。

【问题讨论】:

  • 实际上你在 self.view 中添加了 swl 是正确的,你的滑动手势也添加到了 self.view 中,这是冲突的原因
  • 那么解决方案是什么?我怎样才能避免冲突?@Anbu.Karthik
  • 你最需要哪一个...swl或刷卡
  • 我需要它们来控制字体和页面。
  • 您如何添加/显示不同的滑动视图?他们是来自 pageviewController 还是放在 scrollview 上

标签: ios objective-c iphone swrevealviewcontroller


【解决方案1】:

您首先在使用 pagecontroller 的视图控制器中设置了 swrevealcontroller 的平移手势的委托。为此还要添加手势识别器的代表。

比实现 GestureRecongnizer 的这个委托方法。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {

    if (otherGestureRecognizer.delegate == self)
        return NO;

    if ([[otherGestureRecognizer.view class] isSubclassOfClass:[UIPageViewController class]]) {
        NSLog(@"Allow1 %@", [otherGestureRecognizer description]);
        return YES;
    }

    NSLog(@"Deny %@", [otherGestureRecognizer description]);
    return NO;
}

希望对你有所帮助。

【讨论】:

    猜你喜欢
    • 2020-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多