Music_Player3/relax.offline.mp3.music/MP/Common/Tool(工具封装)/MPPositive_Debouncer.swift
2024-10-09 14:43:59 +08:00

44 lines
1.1 KiB
Swift

//
// MPPositive_Debouncer.swift
// MusicPlayer
//
// Created by Mr.Zhou on 2024/5/21.
//
import UIKit
class MPPositive_Debouncer: NSObject {
static let shared = MPPositive_Debouncer()
//
private var timer: Timer?
//
private var playerTimer:Timer?
private override init() {
super.init()
}
deinit {
timer?.invalidate()
timer = nil
playerTimer?.invalidate()
playerTimer = nil
}
func call(_ delay:TimeInterval = 0.15, action:@escaping (() -> Void)) {
//
timer?.invalidate()
timer = nil
//
timer = Timer.scheduledTimer(withTimeInterval: delay, repeats: false) {[weak self] _ in
guard let _ = self else { return }
action()
}
}
func playCall(_ action:@escaping (() -> Void)) {
playerTimer?.invalidate()
playerTimer = nil
playerTimer = Timer.scheduledTimer(withTimeInterval: 10, repeats: false) {[weak self] _ in
guard let _ = self else { return }
action()
}
}
}