菜鸟教程小白 发表于 2022-12-11 19:40:46

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


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

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

<p>还有没有办法区分 Storyboard 中的屏幕类型?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您可以尝试将 <code>displayConfiguration</code> 消息发送到 <code>UIScreen</code> 的 <code>mainScreen</code> 实例并访问 <code>FBSDisplayConfiguration</code> 结构,但我不确定,如果您将其发送到 App Store,此代码是否会被批准:</p>

<pre><code>UIScreen *mainScreen = ;
SEL selector = NSSelectorFromString(@&#34;displayConfiguration&#34;);
id displayConfiguration = ;
</code></pre>

<p>这是我的 iPhone SE 的 <code>displayConfiguration</code>:</p>

<pre><code>&lt;FBSDisplayConfiguration: 0x1c417fec0; Main; mode: &#34;320x568@2x 60Hz sRGB SDR&#34;&gt; {
    CADisplay.name = LCD;
    CADisplay.deviceName = primary;
    CADisplay.seed = 2;
    tags = 0;
    currentMode = &lt;FBSDisplayMode: 0x1c4094d70; 320x568@2x (640x1136/2) 60Hz sRGB SDR&gt;;
    safeOverscanRatio = {0.89999997615814209, 0.89999997615814209};
    nativeCenter = {320, 568};
    pixelSize = {640, 1136};
    bounds = {{0, 0}, {320, 568}};
    CADisplay = &lt;CADisplay:LCD primary&gt;;
}
</code></pre>

<p> <a href="https://github.com/nst/iOS-Runtime-Headers/blob/master/Frameworks/QuartzCore.framework/CADisplay.h" rel="noreferrer noopener nofollow">It seems</a> <code>CADisplay</code> 也是私有(private) API 的一部分。</p>

<p>PS:我没有能力在 iPhone X 上测试这些代码,如果你有,请告诉我 <code>CADisplay.name</code> 的值。我也很有趣:)</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何检测iOS屏幕是OLED?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/48490555/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/48490555/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何检测iOS屏幕是OLED?