美文网首页
iOS 控制屏幕亮度

iOS 控制屏幕亮度

作者: 小道萧兮 | 来源:发表于2017-02-20 16:09 被阅读309次

一、目标

支付宝相信大家都用过,其有一个功能,就是在进入付款功能中,显示二维码时,屏幕亮度会逐渐增加,而在退出该界面时,屏幕亮度又会逐渐降低,现在我的现在做一个功能。

二、核心属性

@available(iOS 5.0, *)
open var brightness: CGFloat // 0 .. 1.0, where 1.0 is maximum brightness. Only supported by main screen.

这句话能改变屏幕亮度,从iOS 5 开始就可以用了,其取值范围在0.0~1.0之间,1.0是最亮。并且,这句话是全局有效,而不仅仅是设置当前控制器的亮度,也就是说,如果你在某个控制器中改变了屏幕亮度,那么哪怕杀死应用,手机屏幕仍是你设置的亮度,除非用户手动调节亮度值。

三、 屏幕亮度渐变实现

import UIKit

class ViewController: UIViewController {

    /// 记录进入该控制器时的亮度,在返回时,改为初始亮度
    var brightness: CGFloat = 0
    /// 使用定时器,逐步改变屏幕亮度
    var timer: Timer?

    /// 在界面显示时,逐渐加亮屏幕
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        brightness = UIScreen.main.brightness
        timer = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: #selector(increaseBrightness), userInfo: nil, repeats: true)
    }
    
    /// 界面消失时,恢复屏幕初始亮度
    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        timer = Timer.scheduledTimer(timeInterval: 0.01, target: self, selector: #selector(decreaseBrightness), userInfo: nil, repeats: true)
    }
    
    /// 增加屏幕亮度
    @objc private func increaseBrightness() {
        if UIScreen.main.brightness > 0.9 {
            timer?.invalidate()
            timer = nil
            return
        }
        UIScreen.main.brightness += 0.01
    }
    
    /// 降低屏幕亮度
    @objc private func decreaseBrightness() {
        if UIScreen.main.brightness <= brightness {
            timer?.invalidate()
            timer = nil
            return
        }
        UIScreen.main.brightness -= 0.01
    }
}

另外,屏幕的亮度调节只能在真机上看到效果,模拟器上看不到效果!
PS:

// 保存屏幕常亮
UIApplication.shared.isIdleTimerDisabled = true

相关文章

  • iOS 控制屏幕亮度

    一、目标 支付宝相信大家都用过,其有一个功能,就是在进入付款功能中,显示二维码时,屏幕亮度会逐渐增加,而在退出该界...

  • iOS控制屏幕的亮度

    我们可以发现在播放视频的时候可以通过 上下滑动屏幕来调整亮度 其实核心就一句代码 我们有时候需要屏幕保持亮度不让变暗

  • iOS调整系统屏幕亮度和音量

    我的博客原文地址 一 iOS调整系统屏幕亮度 在iOS5.0以前,无法直接修改系统屏幕亮度,到了iOS5.0以后,...

  • Android屏幕亮度、待机时间总结

    程序员成长笔记 屏幕亮度部分 以上代码简单封装常用的屏幕亮度控制,提供简单的页面亮度模式切换和页面亮度改变。使用s...

  • 屏幕亮度

    ios 通过代码调节屏幕亮度 方法: [[UIScreen mainScreen] setBrightness: ...

  • IOS设置屏幕亮度

    1、获取系统当前的亮度值 2、设置系统屏幕的亮度 END.

  • iOS 屏幕亮度调节

    设置屏幕亮度:UIScreen.h [[UIScreen mainScreen] setBrightness:0....

  • iOS 屏幕亮度设置

    [[UIScreen mainScreen] setBrightness:1]; brightness 设置值区间...

  • Mac控制外接屏幕亮度

    Mac使用ddcctl控制外接屏幕亮度(注:需要显示器支持ddc.ci) 1 clone 2 make 3 设置显...

  • iOS 屏幕相关(屏幕亮度,禁止锁屏,获取当前屏幕亮度)

    如果您在阅读我的文章时有疑问 , 请点击这里获取当前屏幕亮度 设置屏幕亮度(屏幕亮度 从 0-1 ) 设置屏幕...

网友评论

      本文标题:iOS 控制屏幕亮度

      本文链接:https://www.haomeiwen.com/subject/mnrewttx.html