【发布时间】:2019-07-27 16:30:25
【问题描述】:
我有一个控制声音的按钮,我想让它长按按钮,声音会逐渐增加。怎么做? (我有增加和减少声音的逻辑)
【问题讨论】:
-
最难的部分是什么?为什么需要“递归”?
我有一个控制声音的按钮,我想让它长按按钮,声音会逐渐增加。怎么做? (我有增加和减少声音的逻辑)
【问题讨论】:
试试这个代码。希望对您有所帮助。
@IBOutlet weak var volumeUpButton: UIButton!
var shouldIncreaseVolume: Bool = false { didSet { if shouldIncreaseVolume { volumeLoop() } } }
override func viewDidLoad() {
super.viewDidLoad()
let longPress = UILongPressGestureRecognizer(target: self, action: #selector(increaseVolumeHandler))
volumeUpButton.addGestureRecognizer(longPress)
}
@objc
func increaseVolumeHandler(sender: UILongPressGestureRecognizer) {
switch sender.state {
case .began:
shouldIncreaseVolume = true
break
default:
shouldIncreaseVolume = false
break
}
}
func volumeLoop() {
// You can alter the time from 0.1 to any value as per your requirement.
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
if self.shouldIncreaseVolume {
self.volumeLoop()
print("(+) Call increase volume method here.")
}
}
}
谢谢
【讨论】: