如何使用淡入淡出动画设置屏幕亮度?

2023-11-27

是否可以在 iOS 5.1+ 上以动画方式显示屏幕亮度变化?我在用[UIScreen mainScreen] setBrightness:(float)]但我认为突然的改变很难看。


当我尝试使用正在进行的先前动画将动画设置为另一个值时,我遇到了接受的答案的问题。此解决方案取消正在进行的动画并动画到新值:

extension UIScreen {

    func setBrightness(_ value: CGFloat, animated: Bool) {
        if animated {
            _brightnessQueue.cancelAllOperations()
            let step: CGFloat = 0.04 * ((value > brightness) ? 1 : -1)
            _brightnessQueue.add(operations: stride(from: brightness, through: value, by: step).map({ [weak self] value -> Operation in
                let blockOperation = BlockOperation()
                unowned let _unownedOperation = blockOperation
                blockOperation.addExecutionBlock({
                    if !_unownedOperation.isCancelled {
                        Thread.sleep(forTimeInterval: 1 / 60.0)
                        self?.brightness = value
                    }
                })
                return blockOperation
            }))
        } else {
            brightness = value
        }
    }

}

private let _brightnessQueue: OperationQueue = {
    let queue = OperationQueue()
    queue.maxConcurrentOperationCount = 1
    return queue
}()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用淡入淡出动画设置屏幕亮度? 的相关文章

随机推荐

  • 如何构建使用 CMake FetchContent 下载的外部库?

    我有一个依赖于外部库 例如 SDL 的程序 我希望 CMake 为我处理这种依赖性 所以我正在研究FetchContent 据我了解 该模块只是下载源代码 以便可以在以下位置获得有关外部库的信息配置时间 例如 include FetchCo
  • SVN:发布分支和外部?

    我们有两个针对同一客户的网站 主 www 网站和另一个位于单独服务器上的电子商务网站 它们使用共享的代码部分 各种功能 样式 javascript 等 目前 我们通过将共享代码作为 SVN 中的单独项目 在同一存储库中 并使用 svn ex
  • Python3中如何设置文件权限?

    Python 自己的文档非常简洁地介绍了如何使用类似的函数os fchmod os chmod 我对这样的数字感到困惑777和类似的表达方式stat S IWRITE stat S IEXEC 是什么mode 0o777我在一些函数中看到o
  • 首先在 EF 4.1 代码中映射关联表

    我不确定如何映射下面的表格EF 4 1 code first以及我需要哪些对象来代表表格 我如何检索产品规格列表 我目前只有一个Product class Products Table Id Name IsActive ProductSpe
  • 如何正确配置 Cocoa Pods 项目?

    在我过去的一些项目中 Cocoa Pods 的配置不正确 这会导致一些不良情况 例如项目导航器中需要重复的 Cocoa Pod 项目 或者必须将 pod 文件签入版本控制 如何正确安装 Cocoa Pods 并验证我的目录结构和项目导航器结
  • 如何使用 API Gateway 调用 AWS Step Function

    如何使用 API Gateway POST 请求以及 Step Function 的请求 JSON 负载调用 AWS Step Function 1 创建阶跃函数 非常明显 我想如果您正在阅读本文 您就知道该怎么做 否则 您可以查看此处的文
  • 使用 LINQ 生成填充随机数的随机大小集合

    我现在正在学习 LINQ 我想知道是否有任何方法可以使用它来实际生成列表 而不仅仅是查询已经生成的列表 所以我有以下代码 使用 for 循环来生成随机大小的整数列表并用随机数填充它 有没有办法将其转换为 LINQ var ret new L
  • 当另一个表中存在匹配行时更新行

    仅当另一个表中存在匹配行时 对于主表中该列当前为空的所有行 我才需要将表上的字段更新为 true 这是我想要实现的目标的描述 UPDATE LenqReloaded dbo Enquiry A SET ResponseLetterSent
  • 限制 .net 应用程序的内存使用

    有没有办法限制 NET 应用程序使用的内存量 看看进程调控器 http lowleveldesign wordpress com 2013 11 21 set process memory limit with process govern
  • 如何在NumericUpDown控件中显示空值?

    我有一个 Windows 窗体应用程序 其中包括NumericUpDown控制与Minimum and Maximum相应地将值设置为 50 80 并执行步骤 1 当表单加载时NumericUpDown显示 50 我知道NumericUpD
  • r - 将输出从 sf::st_within 转换为向量

    我尝试使用 R 中的 sf 包来查看 sf 对象是否在另一个 sf 对象内st within功能 我的问题是这个函数的输出是稀疏几何二进制谓词 sgbp我需要一个向量作为输出 以便我可以使用dplyr之后打包进行过滤 这是一个简化的示例 o
  • VS2017 具有新的 getter/setter 语法:如何在 setter 中编写多行?/ [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我使用的是 NET Framework 4 5 2 VS2017 VS2017 为 getter 和 setter 提供了新的语法 现在带有 getter setter 的属性如下所示
  • 提交成功但上传无法在合并表单中使用

    在尝试将提交和上传合 并到一种表单中时 我在上传时遇到问题 但对于提交表单来说没有问题 jQuery Ajax oqcsubmit click function if oqc valid var params oqc serialize a
  • 如何在 R Markdown 中选择特定选项卡?

    我需要从中选择一个选项卡tabset在 R Markdown 文档中 使用 Shiny 运行时 我按照中的例子如何在Shiny中选择特定的tabPanel 并尝试将其适配为 R Markdown 我添加了ids 到选项卡集 选项卡 并在up
  • 对 Python argparse 参数组重新排序

    我在用着argparse我有一个自定义参数组required arguments 有什么方法可以更改帮助消息中参数组的顺序吗 我认为将必需的参数放在可选参数之前更符合逻辑 但没有找到任何文档或问题来提供帮助 例如 改变这个 usage fo
  • 将 csv 文件导入 Python 中的矩阵/数组

    我正在尝试将包含字符串和数字数据矩阵的大 csv 文件导入到 Python 中的数组 矩阵中 在 MATLAB 中 我曾经加载文件并将其简单地分配给一个矩阵 但在 Python 中似乎有点棘手 有人可以建议吗 我对 Python 还很陌生
  • 使用 msbuild 删除空目录

    如何递归处理路径 以便处理完成后路径下不存在空目录 例如 假设我们有C Dir1 Dir2 Dir3并且这些目录中都没有文件 结果应该是删除所有三个目录 我想在不使用自定义任务的情况下完成此任务 像这样的东西应该可以工作 但没有检查计算数千
  • 在自定义 UITableViewCell 中管理 UITextFields 的委托

    因此 我环顾四周 似乎没有任何内容可以准确解释执行此操作的正确方法 我在自定义 UITableViewCell 中有 7 个 UITextField 我的问题是 管理这些 UITextFields 委托的正确方法是什么 由于自定义单元格在技
  • PyCharm 不在主窗口上运行配置

    PyCharm 社区版在 Ubuntu 18 04 上如下所示 请注意 运行配置下拉列表不在我的主窗口上 搜索了文档 设置 视图 但无法弄清楚如何将其附加到主视图 还有其他人有这个问题吗 谢谢 LazyOne 你的回答让我注意到了导航栏 但
  • 如何使用淡入淡出动画设置屏幕亮度?

    是否可以在 iOS 5 1 上以动画方式显示屏幕亮度变化 我在用 UIScreen mainScreen setBrightness float 但我认为突然的改变很难看 当我尝试使用正在进行的先前动画将动画设置为另一个值时 我遇到了接受的