在LED屏幕上,通常使用灰黑色(几乎黑色)。但是,在iPhone X的OLED屏幕上,这并不可行。纯黑是我想要的。
有没有办法检测屏幕是否为OLED类型? (而不是检查它是否是iPhone X)
还有没有办法在情节提要中区分屏幕类型?
最佳答案
您可以尝试将displayConfiguration
消息发送到mainScreen
的UIScreen
实例,并获得对FBSDisplayConfiguration
结构的访问权限,但我不确定,如果将该代码发送到App Store,该代码是否会获得批准:
UIScreen *mainScreen = [UIScreen mainScreen];
SEL selector = NSSelectorFromString(@"displayConfiguration");
id displayConfiguration = [mainScreen performSelector:selector];
这是我的iPhone SE的
displayConfiguration
:<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>;
}
It seems也是 private API的一部分。
PS:如果您有,我没有能力在iPhone X上测试这些代码,请让我知道
CADisplay
的值是什么。我也很有趣:)