ios, iOS11适配,iphoneX适配

一. iPhone X 适配

1.iPhone X 屏幕上下有黑道,没有沾满全屏

解决办法:LaunchImage 中添加一个和iPhone X相关的启动图片

                    图片尺寸:1125 * 2436

Contents.json 中代码如下

{

"extent" :"full-screen",

"idiom" :"iphone",

"subtype" :"2436h",

"filename" :"1125_2436.png",

"minimum-system-version" :"11.0",

"orientation" :"portrait",

"scale" :"3x"}

2.页面布局细节

iPhone X 取消了 Home键,实现了高屏占比,所以默认 View 的区域是全屏幕

屏幕四周有圆角、顶部有“刘海”、底部有手势区域

注意:导航栏高度是 44 + 44

Safe Area 如下图 (红色区域) -(复制来源http://blog.csdn.net/chenyblog/article/details/77987751)


iOS11 以前,我们布局时,视图的 top 和 bottom 一般参照的是Top Layout Guide和Bottom Layout Guide

iOS11 以后,那两个参照已经deprecated(过时)了,而被Safe Area取代。

Safe Area要求最低支持iOS9.0    以此来解决下图问题


二. iOS 11 适配

1. tableview  出现现象,grouped类型,tableSectionheader/footer 的高度不受控制

解决办法:先实现view for SectionHeader/footer,默认不实现view不会走高度的代理

2.msaonry 布局例如:

table.mas_makeConstraints { (make) -> Void in

if #available(iOS 11.0, *) {

_ = make?.edges.mas_equalTo()(self.view.safeAreaInsets) // 安全区域

} else {

// Fallback on earlier versions

_ = make?.edges.mas_equalTo()(self.view)

}

}

3.iOS 11中ViewController的automaticallyAdjustsScrollViewInsets属性被废弃了,导致了这页面出现了透明导航栏布局问题


解决办法:

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

self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;

} else {

self.automaticallyAdjustsScrollViewInsets = NO;

}

4. navigationtitle, 上有searchbar

效果图:

5.tableview  布局问题




参考视频:https://developer.apple.com/videos/play/fall2017/201/

https://developer.apple.com/videos/play/fall2017/801/

未完待续。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容