ASCScreenBrightnessDetector 允许您轻松检测屏幕亮度变化,并提供一些有用的代理方法。
例如,您很容易在针对不同照明条件优化的日间和夜间主题之间切换
此仓库包含一个示例项目,该项目使用了 ASCScreenBrightnessDetector 提供的方法 - 只需构建和运行即可看到效果。
请注意:屏幕亮度检测只能在真实设备上工作,Xcode 模拟器的屏幕亮度始终为 0.5。
您想在哪里使用 ASCScreenBrightnessDetector,请按照以下方式导入头文件
#import "ASCScreenBrightnessDetector.h"
或在使用 CocoaPods 时
#import <ASCScreenBrightnessDetector/ASCScreenBrightnessDetector.h>
要检测当前屏幕亮度和样式,您可以使用以下内容
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;
}
要连续检测屏幕亮度变化,请将 ASCScreenBrightnessDetector 实现为实例变量,设置代理并使用以下代理方法
- (void)screenBrightnessDidChange:(CGFloat)brightness
{
NSLog(@"The new brightness is: %f", brightness);
}
- (void)screenBrightnessStyleDidChange:(ASCScreenBrightnessStyle)style
{
NSLog(@"The new style is: %u", style);
}
充当代理的对象。
id<ASCScreenBrightnessDetectorDelegate> delegate;
屏幕亮度级别介于 0.0 和 1.0 之间,包括。(只读)
CGFloat screenBrightness;
样式表示屏幕亮度是暗的还是亮的,这取决于定义的阈值。(只读)
ASCScreenBrightnessStyle screenBrightnessStyle;
阈值确定亮度样式是亮还是暗。它必须具有介于 0.0 和 1.0 之间的值,包括。默认值为 0.5。
CGFloat threshold;
当屏幕亮度更改时告诉代理,并返回一个介于 0.0 和 1.0 之间的 float
值,包括。
- (void)screenBrightnessDidChange:(CGFloat)brightness;
当屏幕亮度样式更改时告诉代理,并返回一个 ASCScreenBrightnessStyle
枚举。
- (void)screenBrightnessStyleDidChange:(ASCScreenBrightnessStyle)style;
将 ASCScreenBrightnessDetector.h
和 ASCScreenBrightnessDetector.m
源文件拖放到您的项目中,您就完成了。
André Schneider,@aschndr
ASCScreenBrightnessDetector 可在 MIT 许可证下使用。有关更多信息,请参阅 LICENSE 文件。