在LED屏幕上使用黑色(几乎是黑色)是很常见的。但是在iPhone X的OLED屏幕上,感觉不是那么容易。纯黑色是我想要的。
有没有办法检测屏幕是否是OLED类型? (而不是检查它是否是iPhone X)
还有一种方法可以区分故事板中的屏幕类型吗?
答案 0 :(得分:0)
您可以尝试向displayConfiguration
mainScreen
UIScreen
实例发送FBSDisplayConfiguration
消息并访问UIScreen *mainScreen = [UIScreen mainScreen];
SEL selector = NSSelectorFromString(@"displayConfiguration");
id displayConfiguration = [mainScreen performSelector:selector];
结构,但我不确定,这是如果您将代码发送到App Store,代码将被批准:
displayConfiguration
以下是我的iPhone SE的<FBSDisplayConfiguration: 0x1c417fec0; Main; mode: "320x568@2x 60Hz sRGB SDR"> {
CADisplay.name = LCD;
CADisplay.deviceName = primary;
CADisplay.seed = 2;
tags = 0;
currentMode = <FBSDisplayMode: 0x1c4094d70; 320x568@2x (640x1136/2) 60Hz sRGB SDR>;
safeOverscanRatio = {0.89999997615814209, 0.89999997615814209};
nativeCenter = {320, 568};
pixelSize = {640, 1136};
bounds = {{0, 0}, {320, 568}};
CADisplay = <CADisplay:LCD primary>;
}
:
CADisplay
It seems CADisplay.name
也是私有API的一部分。
PS:我没有能力在iPhone X上测试这些代码,如果您有 - 请告诉我,{{1}}的价值是多少。我也很有趣:)