检查最后一个按钮点击
Check for last button tap
我正在使用 AVPlayer
,当我单击前进按钮转到下一首歌曲时,它会按预期自动下载歌曲。但是,如果我多次点击前进按钮,应用程序就会变得非常迟钝。那么有没有办法调用前进按钮的功能,如果它没有被点击例如两秒钟?
我将 Xcode 10 与 Swift 4.2 和 Firebase 一起用于下载 URL 并将其传递到 AVPlayer
与 AVPlayerItem(url: url)
您可以抓住时间并实现您的代码。试试这个代码:
var lastTap:Date = Date(timeIntervalSince1970: 0)
func buttonTapped(sender:Any) {
// Checks if it has been tapped in the last two seconds
if (Date().timeIntervalSince(lastTap) < 2) {
return
}
lastTap = Date()
// Perform playing
playSong()
}
这个有效:
var timer: Timer!
在按钮操作中:
if let timer = timer {
timer.invalidate()
}
timer = Timer.scheduledTimer(timeInterval: 0.5, target: self, selector: #selector(play), userInfo: nil, repeats: false)
@objc func play() {
self.play()
}
我正在使用 AVPlayer
,当我单击前进按钮转到下一首歌曲时,它会按预期自动下载歌曲。但是,如果我多次点击前进按钮,应用程序就会变得非常迟钝。那么有没有办法调用前进按钮的功能,如果它没有被点击例如两秒钟?
我将 Xcode 10 与 Swift 4.2 和 Firebase 一起用于下载 URL 并将其传递到 AVPlayer
与 AVPlayerItem(url: url)
您可以抓住时间并实现您的代码。试试这个代码:
var lastTap:Date = Date(timeIntervalSince1970: 0)
func buttonTapped(sender:Any) {
// Checks if it has been tapped in the last two seconds
if (Date().timeIntervalSince(lastTap) < 2) {
return
}
lastTap = Date()
// Perform playing
playSong()
}
这个有效:
var timer: Timer!
在按钮操作中:
if let timer = timer {
timer.invalidate()
}
timer = Timer.scheduledTimer(timeInterval: 0.5, target: self, selector: #selector(play), userInfo: nil, repeats: false)
@objc func play() {
self.play()
}