iOS - 适配iPhoneX的一些问题

简单说下自己遇到的iPhoneX适配问题

首先在宏定义里定义一个IS_IPHONE_X判断是不是iPhoneX,如下:

#define IS_IPHONE_X ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)

也有这么写的 #define IS_IPHONE_X (Screen_Height == 812.0f) ? YES : NO

1.自定导航栏高度、tabBar高度、状态栏高度宏定义

  1. 导航栏高度 88 ,非IPoneX手机为64
  2. 状态栏高度44 ,非IPoneX手机为20
  3. tabar高度83 ,非IPhoneX手机为49
#define Height_Navigation (IS_IPHONE_X ? 88.0f : 64.0f) 
#define Height_StatusBar (IS_IPHONE_X ? 44.0f : 20.0f)
#define Height_TabBar (IS_IPHONE_X ? 83.0f : 49.0f)

2.带背景颜色自定义bar,tableView的头部,通过设置contentInset使其改变了状态栏的颜色。

_tableview.contentInset = UIEdgeInsetsMake(IS_IPHONE_X ? -44 : -20, 0, 100, 0);

3.iPhone X中 MJRefresh的上拉加载更多

当tableView的底部与屏幕最下部对齐时,由于scrollview自动适应安全区域,tableview的内边距下端变成了34,所以加载脚部图出现了。通过设置:

_tableView.mj_footer.ignoredScrollViewContentInsetBottom = IS_IPHONE_X ? 34 : 0;

同理,头部加载图显现的话,设置ignoredScrollViewContentInsetTop属性即可

猜你喜欢

转载自blog.csdn.net/ssy_1992/article/details/80512510