在我的应用程序的设置中,有一个开关允许用户打开或关闭iPhone的闪光灯(闪光灯用于指示应用程序逻辑运行时的某些点)。我想要实现的是:当用户切换此开关时,我希望它能够瞬间闪烁以指示其处于“开启”状态。
现在,我知道如何开启或关闭torchMode
- 这是在应用程序本身中实现的,但我不确定如何正确地使其“闪烁”以进行设置。我想到的一种方法是使用以下代码(toggleFlash()
是一种用于切换主代码中实现的torchMode
的静态方法):
UIView.animate(withDuration: 1.0, animations: {
ViewController.toggleFlash(on: true)
}, completion: { (_) in
ViewController.toggleFlash(on: false)
})
这确实让它'眨眼',但只是片刻 - 而不是1秒钟。此外,我不确定为此目的使用animate
是否正确。另一个想法是使用Thread.sleep
,但这看起来更糟糕。
有人可以推荐更好的解决方案吗?
答案 0 :(得分:2)
你可以使用计时器。
func flashForOneSecond() {
ViewController.toggleFlash(on: true)
flashOffTimer = Timer.scheduledTimer(timeInterval:1, target:self, selector:#selector(self.switchFlashOff), userInfo:nil, repeats:false)
}
@objc func switchFlashOff() {
ViewController.toggleFlash(on: false)
}
答案 1 :(得分:2)
可能是这样的:
input
wallDeadline是可靠的,解决方案包含在一个函数中。