iPhone X系列适配

2018-11-14  本文已影响4人  黄dog

iPhone尺寸

iPhone尺寸 iPhone尺寸

iPhone X系列都有一个共同的特点,就是“齐刘海”+底部触摸条

针对这种样式的屏幕,我们处理方法是一样,几个宏直接搞定

宏定义获取当前屏幕宽度或高度进行比较来判断是不是iPhone X

#define Is_iPhoneX ((kScreenHeight >= 812.f) ? YES : NO)

// iPhone X Tabbar底部安全区

#define BottomSafeAreaHeight (Is_iPhoneX ? 34.f : 0.f)

// iPhone X 导航栏+状态条

#define NavigationBarHeight (Is_iPhoneX ? 88.f : 64.f)

// 状态条高度

#define StatusBarHeight (Is_iPhoneX ? 44.f : 20.f)

针对继承自UIScrollView的,需要关闭自动调整内边距。在iOS11之前,系统会通过动态调整UIScrollView的contentInset属性来实现视图内容的偏移,但是在iOS11中,系

统不再调整UIScrollView的contentInset,而是通过contentInsetAdjustmentBehavior和adjustedContentInset来

配合完成。

if (@available(iOS 11.0, *)) {

        [UIScrollView appearance].contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

}

在使用的地方手动设置内边距,底下的触摸区域就能正常显示内容了,而且当UIScrollView滑到最底部的时候,不会被遮住。

self.scrollView.contentInset = UIEdgeInsetsMake(0, 0, BottomSafeAreaHeight, 0);

在需要用屏幕比例进行调整的UI,定义两个宏

#define kRatioWidth  (kScreenWidth / 375.0)

#define kRatioHeight (Is_iPhoneX ? 1.0 : (kScreenHeight / 667.0))

(设计图是按照iPhone 6的尺寸设计的,比例用667、375,如果是按照iPhone 5s尺寸设计的,比例用568、320)

上一篇下一篇

猜你喜欢

热点阅读