【问题标题】:How to add a vertical swipe gesture to iPhone app for all screens?如何为所有屏幕的 iPhone 应用程序添加垂直滑动手势?
【发布时间】:2011-01-09 15:32:33
【问题描述】:

我想在我的应用程序中添加一个手势,这样当用户垂直滑动时,它会触发一个方法来做某事。滑动可以向上或向下。我从来没有对手势做过任何事情,所以这是我第一次使用手势,而不是 UITableView 中包含的用于删除行的手势。

另一个问题是我的大部分屏幕都是 UITableView,因此用户可以简单地滚动 UITableView。所以我想知道我是否可以使用两指滑动(垂直)来检测运行代码的手势,而不是单指滑动来滚动 UITableView?

提前谢谢你。

尼尔

【问题讨论】:

    标签: iphone-sdk-3.0 ios4 xamarin.ios gesture


    【解决方案1】:

    这在 ApplicationDidLaunch 中:

    UISwipeGestureRecognizer *swipeGesture = [[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipedScreen:)] autorelease];
    swipeGesture.numberOfTouchesRequired = 2;
        swipeGesture.direction = (UISwipeGestureRecognizerDirectionUp|UISwipeGestureRecognizerDirectionDown);
    
    [window addGestureRecognizer:swipeGesture];
    

    然后实施

    - (void) swipedScreen:(UISwipeGestureRecognizer*)swipeGesture {
       // do stuff
    }
    

    使用UIGestureRecognizerUISwipeGestureRecognizer 的文档。

    此外,如果您希望检测滑动的方向,则必须设置两个单独的手势识别器。您无法从滑动手势识别器中获取滑动方向,只能获取它注册识别的方向。

    【讨论】:

    • 发现一个问题 - 当我旋转我的设备时,滑动“垂直”手势没有考虑方向。因此,如果您创建垂直(DirectionUp/Down)滑动并将设备旋转到横向,您现在必须水平滑动。有什么解决这个问题的建议吗?
    • 确保尝试移除手势识别器并在旋转后读取它们。您可以使用 UIView 实例方法gestureRecognizers 循环访问它们并删除它们。即for (UIGestureRecognizer *recognizer in self.view)
    • @mackross 我想上下交换多个视图,所以如何实现说我 plz....???
    • 这里的window 是什么[window addGestureRecognizer:swipeGesture]; ..?
    【解决方案2】:

    在 swift 4.0 中,AppDelegate 的方法 didFinishLaunchingWithOptions:

    let swipeGesture = UISwipeGestureRecognizer(target: self, action: #selector(self.swipedScreen(swipeGesture:)))
    swipeGesture.numberOfTouchesRequired = 2
    swipeGesture.direction = [UISwipeGestureRecognizerDirection.up,  UISwipeGestureRecognizerDirection.down]
    window?.addGestureRecognizer(swipeGesture)
    

    以及行动:

    @objc func swipedScreen(swipeGesture: UISwipeGestureRecognizer){
        Swift.print("hy")
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多