iOS开发之适配判断刘海屏幕
<p>我们在开发中为了适配iPhoneX之后的刘海屏幕,经常得加上各种判断,每年苹果除了新的机型之后可能又得修改</p><p>所以给大家介绍一个通用的方法</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">#define</span> kIsBangsScreen ({\<span style="color: rgba(0, 0, 0, 1)">
BOOL isBangsScreen </span>=<span style="color: rgba(0, 0, 0, 1)"> NO; \
</span><span style="color: rgba(0, 0, 255, 1)">if</span> (@available(iOS <span style="color: rgba(128, 0, 128, 1)">11.0</span>, *<span style="color: rgba(0, 0, 0, 1)">)) { \
UIWindow </span>*window =<span style="color: rgba(0, 0, 0, 1)"> [.windows firstObject]; \
isBangsScreen </span>= window.safeAreaInsets.bottom > <span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">; \
} \
isBangsScreen; \
})</span></pre>
</div>
<p>在这里之所以使用 <code>windows</code> 是因为,<code>keyWindow</code>、<code>delegate.window</code>有时候会获取不到,为<code>null</code></p>
<p> </p>
<p>下面这种也还是可以的</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">#define</span> isIphoneX ({\<span style="color: rgba(0, 0, 0, 1)">
BOOL isPhoneX </span>=<span style="color: rgba(0, 0, 0, 1)"> NO;\
</span><span style="color: rgba(0, 0, 255, 1)">if</span> (@available(iOS <span style="color: rgba(128, 0, 128, 1)">11.0</span>, *<span style="color: rgba(0, 0, 0, 1)">)) {\
</span><span style="color: rgba(0, 0, 255, 1)">if</span> (!UIEdgeInsetsEqualToEdgeInsets(.<span style="color: rgba(0, 0, 255, 1)">delegate</span><span style="color: rgba(0, 0, 0, 1)">.window.safeAreaInsets, UIEdgeInsetsZero)) {\
isPhoneX </span>=<span style="color: rgba(0, 0, 0, 1)"> YES;\
}\
}\
isPhoneX;\
})</span></pre>
</div>
<p> </p><br><br>
来源:https://www.cnblogs.com/hecanlin/p/13813175.html
頁:
[1]