在 LED 屏幕上,使用黑色(几乎是黑色)是很常见的。但在 iPhone X 的 OLED 屏幕上,这感觉不是要走的路。纯黑色是我想要的。
有没有办法检测屏幕是否为 OLED 类型? (而不是检查它是否是 iPhone X)
还有没有办法区分 Storyboard 中的屏幕类型?
Best Answer-推荐答案 strong>
您可以尝试将 displayConfiguration 消息发送到 UIScreen 的 mainScreen 实例并访问 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 = <CADisplayCD primary>;
}
It seems CADisplay 也是私有(private) API 的一部分。
PS:我没有能力在 iPhone X 上测试这些代码,如果你有,请告诉我 CADisplay.name 的值。我也很有趣
关于ios - 如何检测iOS屏幕是OLED?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/48490555/
|