如何打开iPhone的闪光1秒钟?

时间:2018-01-30 11:25:47

标签: ios iphone swift

在我的应用程序的设置中,有一个开关允许用户打开或关闭iPhone的闪光灯(闪光灯用于指示应用程序逻辑运行时的某些点)。我想要实现的是:当用户切换此开关时,我希望它能够瞬间闪烁以指示其处于“开启”状态。

现在,我知道如何开启或关闭torchMode - 这是在应用程序本身中实现的,但我不确定如何正确地使其“闪烁”以进行设置。我想到的一种方法是使用以下代码(toggleFlash()是一种用于切换主代码中实现的torchMode的静态方法):

UIView.animate(withDuration: 1.0, animations: {
    ViewController.toggleFlash(on: true)
}, completion: { (_) in
    ViewController.toggleFlash(on: false)
})

这确实让它'眨眼',但只是片刻 - 而不是1秒钟。此外,我不确定为此目的使用animate是否正确。另一个想法是使用Thread.sleep,但这看起来更糟糕。

有人可以推荐更好的解决方案吗?

2 个答案:

答案 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是可靠的,解决方案包含在一个函数中。