Swift 4-按下按钮时是否动作-循环播放?

时间:2018-08-10 04:28:39

标签: ios swift button gesture

嗨,我想在按下按钮的同时向树莓派的电动机发送命令。例如:当我按下按钮时,电动机应该运转。这是一个步进电机,所以我需要长按和常规按命令。普通轻按既容易又有效,但是长按(反复执行命令)不起作用。我用长按手势识别器尝试了一下,然后循环播放,但是不起作用 这是我的代码。

@objc func motorLongTap(_ sender: UIGestureRecognizer){        
    while (sender.state == .began) && (sender.state != .ended){
    //send command
    }
}

循环不会停止。希望有人能帮助我。 最好的问候

编辑:问题已解决。 谢谢MadProgrammer的解决方案

现在这是按下动作时获得“循环”的代码。

var buttonTimer:Timer!

@objc func motorLongTap(_ sender: UIGestureRecognizer){        
    if sender.state == .ended{
    buttonTimer.invalide()
    }
    else sender.state == .began{
    buttonTimer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(longTapMotor), userInfo: nil, repeats: true)
    }

}
    @objc func longTapMotor() {
        //send command
    }

1 个答案:

答案 0 :(得分:1)

您的逻辑不正确。试试这个:

@objc func motorLongTap(_ sender: UIGestureRecognizer){        
    if sender.state != .ended{
        //send command
    }
}