美文网首页
iOS判断是否是有刘海头的iPhone X类设备

iOS判断是否是有刘海头的iPhone X类设备

作者: 独孤流 | 来源:发表于2019-04-21 15:08 被阅读0次

方式一、以statusbar的高度进行判断,如下:(有瑕疵)

#define isIPhoneXAll ([[UIApplication sharedApplication] statusBarFrame].size.height == 44)

问题1、在设置不展示状态栏时渠道的状态栏高度就是0,导致判断出错
问题2、这种写死的等于某个数字的判断有风险,在苹果后续某个系统版本如果修改了具体的值会导致线上的版本判断出错

隐藏状态栏的修改如下:

1.全局设置隐藏状态栏

修改info.plist文件的属性View controller-based status bar appearance

image

所有页面的statusBar高度都将变成0.

2.单独在某个controller设置隐藏
// 代码调用隐藏状态栏
[UIApplication sharedApplication].statusBarHidden = YES;

此页面的状态栏高度为0.

参考:


方式二、判断safearea是否是UIEdgeInsetsZero,如果不是,则是刘海头手机

#define IPHONE_X \
({BOOL isPhoneX = NO;\
if (@available(iOS 11.0, *)) {\
isPhoneX = [[UIApplication sharedApplication] delegate].window.safeAreaInsets.bottom > 0.0;\
}\
(isPhoneX);})

参考:

相关文章

网友评论

      本文标题:iOS判断是否是有刘海头的iPhone X类设备

      本文链接:https://www.haomeiwen.com/subject/pgxjgqtx.html