ios - 如何检测iOS屏幕是OLED?

标签 ios screen

在 LED 屏幕上,使用灰黑色(几乎是黑色)是很常见的。但在 iPhone X 的 OLED 屏幕上,这感觉不合适。纯黑色才是我想要的。

有没有办法检测屏幕是否为 OLED 类型? (而不是检查它是否是 iPhone X)

还有在 Storyboard 中区分屏幕类型的方法吗?

最佳答案

您可以尝试将 displayConfiguration 消息发送到 UIScreenmainScreen 实例并访问 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 CADisplay 也是私有(private) API 的一部分。

PS:我无法在 iPhone X 上测试这些代码,如果您有,请告诉我 CADisplay.name 的值。我也很有趣:)

关于ios - 如何检测iOS屏幕是OLED?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48490555/

相关文章:

ios - 放大核心图时更改majorIntervalScale

android - PhoneGap/Android - 将方向锁定为纵向

iphone - iPhone 视网膜像素与 iPad 视网膜像素的物理尺寸相同吗?

ios - 容器 View segue 在当前上下文中作为模态

android - 如何在 Android 上的方向更改时避免重新启动 Activity

java - 如何用Java检测用户是否有扩展桌面/显示器?

javascript - 根据屏幕分辨率运行 jquery 代码的正确方法

ios - 如何在 indexPath 设置默认对象?

ios - 在 Objective C 中检查 Swift ViewController 的 isKindOfClass 方法

ios - bundle 无效, bundle 包含不允许的嵌套 bundle ,包含不允许的文件 'Frameworks'