[翻译] ASCScreenBrightnessDetector
ASCScreenBrightnessDetector

ASCScreenBrightnessDetector lets you easily detect screen brightness changes and provides some useful delegate methods.
For Example it's very easy to switch between a day and night theme optimized for different lighting conditions:
ASCScreenBrightnessDetector能让你非常便利的检测屏幕亮度,并提供实用的代理方法供你使用。
例如,下面的例子中,在白天和黑夜之间切换可以适用不同的主题。

Usage
This repository contains an example project that uses the methods provided by ASCScreenBrightnessDetector - just build and run to see it in action.
这个例子中已经包含了使用样例-你可以编译然后自己看一下效果。
Please note: The screen brightness detection will only work on a real device, the Xcode Simulators screen brightness is always 0.5.
注意:屏幕亮度检测只会在真实的设备上使用,模拟器上面永远都是0.5.
Wherever you want to use ASCScreenBrightnessDetector, import the header file as follows:
单例想用ASCScreenBrightnessDetector的时候,导入头文件:
#import "ASCScreenBrightnessDetector.h"
or when using CocoaPods:
如果你用的是CocoaPods,就这么导入头文件:
#import <ASCScreenBrightnessDetector/ASCScreenBrightnessDetector.h>
To detect the current screen brightness or style you can easily use:
为了检测当前屏幕亮度,你可以这样子使用:
ASCScreenBrightnessDetector *brightnessDetector = [ASCScreenBrightnessDetector new]; NSLog(@"Screen brightness: %f", brightnessDetector.screenBrightness); ASCScreenBrightnessStyle style = brightnessDetector.screenBrightnessStyle;
switch (style) {
case ASCScreenBrightnessStyleDark:
// Do something, e.g. set a dark theme.
break;
case ASCScreenBrightnessStyleLight:
// Do something else, e.g set a light theme.
break;
}
To continuously detect screen brightness changes implement ASCScreenBrightnessDetector as an instance variable, set the delegate and use the following delegate methods:
为了实时监测屏幕亮度的变化,你需要初始化ASCScreenBrightnessDetector这个实例变量,然后设置一个代理:
- (void)screenBrightnessDidChange:(CGFloat)brightness
{
NSLog(@"The new brightness is: %f", brightness);
} - (void)screenBrightnessStyleDidChange:(ASCScreenBrightnessStyle)style
{
NSLog(@"The new style is: %u", style);
}
Properties
The object that acts as the delegate.
这是一个代理对象。
id<ASCScreenBrightnessDetectorDelegate> delegate;
The brightness level of the screen between 0.0 and 1.0, inclusive. (read-only)
亮度的值是只读的,介于0.0与1.0之间(包括0.0与1.0)
CGFloat screenBrightness;
The style indicates if the screen brightness is dark or light and depends on the defined threshold. (read-only)
亮度指示器用以表示屏幕是亮的还是暗的(只读)
ASCScreenBrightnessStyle screenBrightnessStyle;
The threshold determines whether the brightness style is light or dark. It must have a value between 0.0 and 1.0, inclusive. The default value is 0.5.
这个值标示着明与暗之间的分割线,其值介于0.0到1.0之间,默认值是0.5。
CGFloat threshold;
Delegate Methods
Tells the delegate when the screens brightness changed and returns a float value between 0.0 and 1.0, inclusive.
你可以从这个代理方法中获取到亮度的变化,介于0.0与1.0之间(包含0.0与1.0)
- (void)screenBrightnessDidChange:(CGFloat)brightness;
Tells the delegate when the screens brightness style changed and returns anASCScreenBrightnessStyle enumeration.
你可以从这个代理方法中获取亮度风格的变化
- (void)screenBrightnessStyleDidChange:(ASCScreenBrightnessStyle)style;
Installation
From CocoaPods
ASCScreenBrightnessDetector is available through CocoaPods, to install it simply add the following line to your Podfile:
ASCScreenBrightnessDetector支持CocoaPods,你可以通过以下一句话来安装到Podfile当中:
pod "ASCScreenBrightnessDetector"
Manually
Drag the ASCScreenBrightnessDetector.h and ASCScreenBrightnessDetector.m source files to your project and you are done.
将ASCScreenBrightnessDetector.h与ASCScreenBrightnessDetector.m拖到你的项目当中。
Author
André Schneider, @aschndr
License
ASCScreenBrightnessDetector is available under the MIT license. See the LICENSE file for more info.
[翻译] ASCScreenBrightnessDetector的更多相关文章
- 《Django By Example》第五章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者@ucag注:大家好,我是新来的翻译, ...
- 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
- [翻译]开发文档:android Bitmap的高效使用
内容概述 本文内容来自开发文档"Traning > Displaying Bitmaps Efficiently",包括大尺寸Bitmap的高效加载,图片的异步加载和数据缓存 ...
- 【探索】机器指令翻译成 JavaScript
前言 前些时候研究脚本混淆时,打算先学一些「程序流程」相关的概念.为了不因太枯燥而放弃,决定想一个有趣的案例,可以边探索边学. 于是想了一个话题:尝试将机器指令 1:1 翻译 成 JavaScript ...
- 《Django By Example》第三章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中 ...
- 《Django By Example》第二章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:翻译完第一章后,发现翻译第二章的速 ...
- 《Django By Example》第一章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作, ...
- 【翻译】Awesome R资源大全中文版来了,全球最火的R工具包一网打尽,超过300+工具,还在等什么?
0.前言 虽然很早就知道R被微软收购,也很早知道R在统计分析处理方面很强大,开始一直没有行动过...直到 直到12月初在微软技术大会,看到我软的工程师演示R的使用,我就震惊了,然后最近在网上到处了解和 ...
- ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第一章:创建基本的MVC Web站点
在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity ...
随机推荐
- php 如何截取中文字符串
在网站应用中时常需要对相应的字符串进行截取.最常用的是使用substr函数对字符串进行截取. 然而,substr和strlen函数只在处理英文字符串时可以正确使用,在截取中文字符时,时常出现乱码.这时 ...
- 用通俗的语言解释 Spring 中的 DI 、IOC 和AOP概念
DI 所谓依赖,从程序的角度看,就是比如A要调用B的方法,那么A就依赖于B,反正A要用到B,则A依赖于B.所谓倒置,你必须理解如果不倒置,会怎么着,因为A必须要有B,才可以调用B,如果不倒置,意思就是 ...
- eclipse修改Properties资源文件的默认编码
在eclipse下,打开window-->preferences-->general-->content Types-->java Properties File 将其编码方式 ...
- java线程状态 以及 sheep()、wait()、yield() 区别
前言 最近看到很多人都在讨论多线程的问题,于是写出了这篇博客,希望可以帮到正在学习和使用这块的朋友们,首先我们先看看两个图(两个图都来自其他码农的分享) 这两个图是一样的逻辑,这里一起罗列出来,下 ...
- Hadoop Metrics2
来源:Hadoop Metrics2 Metrics are collections of information about Hadoop daemons, events and measureme ...
- leetcode5:subsets问题
问题描述: Given a set of distinct integers, nums, return all possible subsets. Note: Elements in a subse ...
- 手把手教你使用 VuePress 搭建个人博客
手把手教你使用 VuePress 搭建个人博客 有阅读障碍的同学,可以跳过第一至四节,下载我写好的工具包: git clone https://github.com/zhangyunchencc/vu ...
- visual studio清理nuget包缓存
最近在使用nuget包的时候发现一个问题.昨天我组长明明发了一个新版本的包上去,可在我电脑上死活找不到这个新版本的包.刷新,重启vs,重启电脑,好长时间才出来.今天又碰到这个问题了,在同事电脑上都能搜 ...
- WPF中ScrollViewer嵌套引发滚动失灵的Bug
事情起因 测试报告说存在滚动条不能拖动的情况,我们几个开发人员多次测试都未重现该问题.后面发现是操作系统的问题,在XP和部分Win7上会存在该问题.而在我们开发人员的机器上,包括Win7 SP1,Wi ...
- 【SSH网上商城项目实战01】整合Struts2、Hibernate4.3和Spring4.2
转自:https://blog.csdn.net/eson_15/article/details/51277324 今天开始做一个网上商城的项目,首先从搭建环境开始,一步步整合S2SH.这篇博文主要总 ...