当 UIScreen 亮度改变时添加动画淡入淡出效果 (Swift)
Adding an animation fade effect when the UIScreen Brightness is changed (Swift)
只是想知道是否可以通过淡入淡出效果来改变屏幕亮度。可以使用 UIScreen.mainScreen().brightness = CGFloat(1)
更改屏幕亮度,但这只会立即将当前亮度更改为变量。
我想知道您是否可以为亮度变化设置动画。比如现在的亮度是0.2,我想把它改成0.8,渐变效果,增量为0.1,直到达到0.8
这可以在 swift 2.3 中完成吗?
UIView 和 CALayers 都有现成的动画方法。但在您的情况下,您想要为 UIScreen 设置动画 属性,因此您必须使用计时器手动执行此操作,以在一段时间内逐渐将亮度从 0.1 更改为 0.8。
var timer = Timer.scheduledTimer(timeInterval: 0.4, target: self, selector: #selector(self.update), userInfo: nil, repeats: true)
func update() {
if (UI.mainScreen().brightness >= 0.8) {
Timer.invalidate(timer)
}
else {
UIScreen.mainScreen().brightness += 0.1
}
}
这将每 0.4 秒将亮度更改 0.1。当它达到 0.8 或更大的值时,它会停止。您可以通过使用 timerInterval 参数来产生更渐进或更直接的效果。
注意:我建议您更改 view alpha
值而不是玩屏幕亮度。
在您的 viewDidLoad
中尝试这种简单的方法来实现 animation.If 您仍然想要使用亮度 method.code 几乎相同。
self.view.alpha = 0.2 // UIScreen.mainScreen().brightness = 0.2
//animation duration value is changeable...
UIView.animate(withDuration: 3, delay: 0, options: UIViewAnimationOptions.curveEaseInOut, animations: {
self.view.alpha = 0.8 // UIScreen.mainScreen().brightness = 0.8
}, completion: nil)
只是想知道是否可以通过淡入淡出效果来改变屏幕亮度。可以使用 UIScreen.mainScreen().brightness = CGFloat(1)
更改屏幕亮度,但这只会立即将当前亮度更改为变量。
我想知道您是否可以为亮度变化设置动画。比如现在的亮度是0.2,我想把它改成0.8,渐变效果,增量为0.1,直到达到0.8
这可以在 swift 2.3 中完成吗?
UIView 和 CALayers 都有现成的动画方法。但在您的情况下,您想要为 UIScreen 设置动画 属性,因此您必须使用计时器手动执行此操作,以在一段时间内逐渐将亮度从 0.1 更改为 0.8。
var timer = Timer.scheduledTimer(timeInterval: 0.4, target: self, selector: #selector(self.update), userInfo: nil, repeats: true)
func update() {
if (UI.mainScreen().brightness >= 0.8) {
Timer.invalidate(timer)
}
else {
UIScreen.mainScreen().brightness += 0.1
}
}
这将每 0.4 秒将亮度更改 0.1。当它达到 0.8 或更大的值时,它会停止。您可以通过使用 timerInterval 参数来产生更渐进或更直接的效果。
注意:我建议您更改 view alpha
值而不是玩屏幕亮度。
在您的 viewDidLoad
中尝试这种简单的方法来实现 animation.If 您仍然想要使用亮度 method.code 几乎相同。
self.view.alpha = 0.2 // UIScreen.mainScreen().brightness = 0.2
//animation duration value is changeable...
UIView.animate(withDuration: 3, delay: 0, options: UIViewAnimationOptions.curveEaseInOut, animations: {
self.view.alpha = 0.8 // UIScreen.mainScreen().brightness = 0.8
}, completion: nil)