在Swift 5(Xcode 10.1)中将LongPress与Swipe UIGesture结合

我曾经见过其他人问类似的问题,但我并不真正理解答案。我是iOS设计的新手,也是Swift的新手,所以为我的无知表示歉意。我的目标是让用户在给定的方向上滑动,并让程序重复执行某个操作,直到用户将手指从屏幕上抬起。据我所知,我需要实现gestureRecognizer函数。

我认为我可能以一种怪异的方式实现了事情:

在我的GameViewController.swift文件中,我将以下内容实现为UIViewController类下的单独功能。

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer,shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer)-> Bool {
    return true
} 

我理解的意思是任何两个UIGestureRecognizer动作都可以同时发生。

在我的GameScene.swift文件中,在SKScene类下,我有:

override func didmove(to view: SKView) {
    ...

    swipeRight =  UISwipeGestureRecognizer(target: self,action: #selector(swipeR))
    swipeleft = UISwipeGestureRecognizer(target: self,action: #selector(swipel))
    longPress = UILongPressGestureRecognizer(target: self,action: #selector(printLongPress))

    longPress.delegate = self as? UIGestureRecognizerDelegate
    swipeRight.delegate = self as? UIGestureRecognizerDelegate
    swipeleft.delegate = self as? UIGestureRecognizerDelegate

    swipeRight.direction = .right
    swipeleft.direction = .left

    view.addGestureRecognizer(swipeRight)
    view.addGestureRecognizer(swipeleft)
    view.addGestureRecognizer(longPress)
}


@objc func swipeR() {
    print("Right")
}
@objc func swipel() {
    print("Left")
}
@objc func printLongPress() {
    print("Long press")
}

理想地,在此处描述的示例代码中,如果要向右轻扫并按住屏幕,则会看到“向右轻扫”,“长按”,“长按”等。

有什么想法我在这里做错了吗?

谢谢!

xiejy1 回答:在Swift 5(Xcode 10.1)中将LongPress与Swipe UIGesture结合

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3169691.html

大家都在问