【问题标题】:IOS: Detect swipe gestures in a specific place on a UIViewIOS:在 UIView 上的特定位置检测滑动手势
【发布时间】:2013-07-05 17:43:42
【问题描述】:

我正在创建一个故事板应用程序,当用户执行滑动手势时,视图会发生变化。我遇到的问题是,当您从main.storyboard 文件将手势识别器拖放到视图上时,会从 UIView 内的任何位置识别手势。基本上,我需要识别在屏幕上特定区域执行的手势,类似于您在 IOS 6 中向下拖动通知中心的方式。如果不清楚或者您需要更多详细信息,请随时询问。

提前感谢您的帮助!

【问题讨论】:

    标签: ios uiview uigesturerecognizer uistoryboard


    【解决方案1】:

    我不确定这是否会对您有所帮助,或者您尝试过类似的方法,但我想分享我的想法。

    您可以在 ViewControl.m 中尝试 UISwipeGestureRecognizer,如下所示:

    UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeToDoMethod)];
    [swipeGesture setDirection:UISwipeGestureRecognizerDirectionRight];
    [[self innerView] addGestureRecognizer: swipeGesture];
    

    您可以将内部视图添加到主视图中,并将此手势添加到该视图中。

    希望对你有帮助,祝你好运! :)

    【讨论】:

    • 感谢您的回答!这似乎是个好主意,但是这段代码中内部视图集的位置在哪里?此外,如何在执行滑动后使用情节提要切换主视图。感谢您的进一步帮助
    • 我提到了内部视图作为您的特定区域。所以你需要在你的主视图中添加一个新的 UIView。我能理解你的第二个问题。如果你的意思是你想在内部视图中滑动手势后切换主视图,我可以建议两件事。一个是您的内部视图是您视图的一部分,因此您无需切换任何视图。或者如果你将它应用到另一个视图,你应该在上面的代码中编写一个我称之为“swipeToDoMethod”的方法。您应该使用 [someView setHidden:YES] 设置视图的可见性; [另一个视图设置隐藏:否];我希望这些是明确的答案;)
    • 谢谢!这很有帮助!
    【解决方案2】:
    UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(SwipeView)];
    [swipe setDirection:UISwipeGestureRecognizerDirectionLeft];
    [[self innerView] addGestureRecognizer: swipe];
    

    //UISwipeGestureRecognizerDirectionRight(或)上(或)下

    【讨论】:

      【解决方案3】:

      使用另一个可见性为 0 的 UIView,将其放在要识别手势的区域,然后将手势添加到此 UIView。

      这只是一个想法。

      希望这会对你有所帮助。

      【讨论】:

        【解决方案4】:

        您可以在视图中添加子视图,将子视图的框架设置为您想要捕捉滑动手势的区域,为其添加识别器,并将其背景颜色设置为清除颜色。希望对您有所帮助。

        【讨论】:

          【解决方案5】:

          添加 Swift 版本:

          //Add gesture recognizer
          let swipeGesture = UISwipeGestureRecognizer(target: self, action: #selector(dismissShowMessageAndButtonDueToSwipeUp))
          swipeGesture.direction = .up
          backgroundView.addGestureRecognizer(swipeGesture)
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-05-15
            • 2016-07-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-05-15
            • 1970-01-01
            相关资源
            最近更新 更多