Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UILongPressGestureRecognizer没有按应有的方式运行,并启动了移动?_Ios_Swift_Uigesturerecognizer - Fatal编程技术网

Ios UILongPressGestureRecognizer没有按应有的方式运行,并启动了移动?

Ios UILongPressGestureRecognizer没有按应有的方式运行,并启动了移动?,ios,swift,uigesturerecognizer,Ios,Swift,Uigesturerecognizer,我的理解是,一旦有一个ui长按GestureRecognitor监听器连接到某个对象,例如按钮,它将启动所选功能,并具有4个默认参数。所需的触摸次数、所需触摸次数、最小按下持续时间和允许的移动 这是我的密码: 1) 这会将侦听器附加到所有退格按钮: func attachBackspaceLongPressListeners() { for button in backspaceButtons { let longPress = UILongPressGestureRec

我的理解是,一旦有一个
ui长按GestureRecognitor
监听器连接到某个对象,例如按钮,它将启动所选功能,并具有4个默认参数。所需的触摸次数、所需触摸次数、最小按下持续时间和允许的移动

这是我的密码:

1) 这会将侦听器附加到所有退格按钮:

func attachBackspaceLongPressListeners() {
    for button in backspaceButtons {
        let longPress = UILongPressGestureRecognizer(target: self, action: #selector(KeyboardViewController.deleteBackwardsLongPress(_:)))            
        button.addGestureRecognizer(longPress)
    }
}
这是它激发的功能:

func deleteBackwardsLongPress(_ gestureRecognizer: UIGestureRecognizer) {
    proxy.deleteBackward()
}

它在模拟器中运行良好,但在实际的键盘应用程序中,它非常不稳定。但是,我发现如果在按住手指,然后在按住的同时移动手指,该功能会按预期启动。

您的UI按钮的触摸事件是什么?是触地得分还是内线触地得分?我会尝试在几个UIButton touch事件之间切换,看看这是否会影响行为。我只是有一个按钮的outletCollection,手势在默认的0.5秒后触发并运行proxy.deleteBackward()。。。这真的很让人困惑,似乎“更改”状态一直在调用函数?