• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-11 19:40:46 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

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

还有没有办法区分 Storyboard 中的屏幕类型?



Best Answer-推荐答案


您可以尝试将 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 = <CADisplayCD primary>;
}

It seems CADisplay 也是私有(private) API 的一部分。

PS:我没有能力在 iPhone X 上测试这些代码,如果你有,请告诉我 CADisplay.name 的值。我也很有趣

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

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap