iOS11&iPhoneX适配&Xcode9打包注意事项

转自:

http://blog.csdn.net/smile_po/article/details/78341685

http://blog.csdn.net/sodaslay/article/details/78191227

一 升级iOS11适配

1.1,适配UITableView

if#available(iOS11.0, *) {

self.contentInsetAdjustmentBehavior= .never

self.estimatedRowHeight=0

self.estimatedSectionHeaderHeight=0

self.estimatedSectionFooterHeight=0

}else{

}

1.2,适配UIScrollView

if#available(iOS11.0, *) {

scrollView?.contentInsetAdjustmentBehavior= .never

}else{

}

1.3,UITableView中的sectionHeader或者Footer显示不正常

还有的发现某些界面tableView的sectionHeader、sectionFooter高度与设置不符的问题,在iOS11中如果不实现-tableView: viewForHeaderInSection:和-tableView: viewForFooterInSection:,则-tableView: heightForHeaderInSection:和- tableView: heightForFooterInSection:不会被调用,导致它们都变成了默认高度,这是因为tableView在iOS11默认使用Self-Sizing,tableView的estimatedRowHeight、estimatedSectionHeaderHeight、estimatedSectionFooterHeight三个高度估算属性由默认的0变成了UITableViewAutomaticDimension,解决办法简单粗暴,就是实现对应方法或把这三个属性设为0。

1.4,适配网页加载不全下面有白边

if#available(iOS11.0, *) {

webView.scrollView.contentInsetAdjustmentBehavior= .never

}else{

}

1.5 如果使用了Masonry 进行布局,就要适配safeArea

if ([UIDevice currentDevice].systemVersion.floatValue >= 11.0) {

         make.edges.equalTo(self.view.safeAreaInsets);

  } else {

       make.edges.equalTo(self.view);

   }

二 iphoneX适配

2.1 适配iPhoneX不能铺满屏的问题

方案一:给Brand Assets添加一张1125*2436大小的图片,打开Assets.xcassets文件夹,找到Brand Assets,右键Show in Finder,添加一张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.2 适配iphoneX

//适配iPhoneX

let LL_iPhoneX = (kScreenW == Double(375.0) && kScreenH == Double(812.0) ?true:false)

let kNavibarH = LL_iPhoneX ? Double(88.0) : Double(64.0)

let kTabbarH = LL_iPhoneX ? Double(49.0+34.0) : Double(49.0)

let kStatusbarH = LL_iPhoneX ? Double(44.0) : Double(20.0)

2.3 设备信息

if ([deviceString isEqualToString:@"iPhone10,1"])  return @"iPhone 8";

if ([deviceString isEqualToString:@"iPhone10,4"])  return @"iPhone 8";

if ([deviceString isEqualToString:@"iPhone10,2"])  return @"iPhone 8 Plus";

if ([deviceString isEqualToString:@"iPhone10,5"])  return @"iPhone 8 Plus";

if ([deviceString isEqualToString:@"iPhone10,3"])  return @"iPhone X";

if ([deviceString isEqualToString:@"iPhone10,6"])  return @"iPhone X";

三 Xcode9打包

xcode9打包版本只能是8.2及以下版本,或者9.0及更高版本

时间: 2024-08-09 03:55:43

iOS11&iPhoneX适配&Xcode9打包注意事项的相关文章

iphoneX适配-客户端H5页面

由于iphoneX做了全面屏并且还保留一块小刘海,因此很多以前的移动端H5页面需要结合App客户端做出相应的适配,具体如下: 1.顶部通栏 之前的客户端一直采用状态栏20pt+导航栏44pt的做法.由于iphoneX多了一块小刘海,因此iphoneX单独采用状态栏44pt+导航栏44pt,意味着内嵌的H5页面整体下移24pt. 2.底部操作栏 由于iphoneX是全面屏,页面最底部会被弯曲的拐角截掉一部分,特别是有底部固定悬浮的tab条会严重受到影响.这时候需要底部留出一块空白安全区域,页面内容

Inno Setup打包注意事项

Inno Setup是一个开源的,商业的,快捷的脚本打包工具. 具体打包流程根据界面提示就可以搞定,下面讲解几个注意事项 1.在安装包进行安装的过程当中,很多程序都需要修改配置信息,这就要求我们在安装完成那一刻调用一个窗体程序来修改配置信息,那么这应该怎么来编写打包脚本呢? 首先最好在编辑脚本以前就应该把修改配置文件信息的exe文件打包进入安装包,比如我们现在想调用一个WindowsFormsApplication1.exe文件,首先把它打包进入安装包,如下: Source: "D:\C#\暑假

iphoneX适配!!!

方法1.js判断(以下采用Jquery) //适配iphonex if($(window).width() === 375 && $(window).height() === 724 && window.devicePixelRatio === 3){ $(".end-page").addClass("step-page-x"); $(".false-img").css("paddingTop"

iphoneX适配

最近小伙伴说她的下个项目是移动端的,她说她没搞过移动端的东西以后要多问问我这个菜鸡,然后脑子里一下子冒出来之前困扰我很久的适配问题,突然想起来还没做记录,趁我代码还没删我先在这里记录一手,万一下个项目我又碰到移动端了也免得忘了又到处去问度娘(遥远的七八个月之后,北漂小菜不想呆在北京啦,哭唧唧) 因为iphoneX这个该死的刘海屏,竟然是放了个刘海遮住界面的一部分,这就很气,你写出来的界面的上面就会被刘海给遮住,如果有个按钮啥的点也点不动 解决办法就是把整个界面抠出来,然后再把整体界面往下移单位个

air 4.0+,Ane打包注意事项【适用Android】

[适合阅读]适用于air sdk 4.0之前,会打包Ane的同学们.如果您之前,没有经验,可以直接留言问题,我会依依解答. [本文目标]:air 4.0+ ,能很好的有效支持 R*文件机制.简言之,可以不用getResourceID()的方式引用资源,Android程序中,可以直接用 R.x.x引用资源. [安装] air sdk : http://helpx.adobe.com/air/kb/archived-air-sdk-version.html   (下载4.0+版本,包含4.0) 如果

被IDEA的打包功能打败了:dubbo服务端打包注意事项

下午在搭建一个基于dubbo和spring的服务端项目.结果打包成jar后各种报错. 起初是因为idea的机制,导致META-INF下自己的Mainfest.mf总是莫名被覆盖,于是报找不到主函数.后来利用artfacts->jar->empty方式配置jar包,并把META-INF文件夹和mainfest.mf文件放在rescorces文件夹下解决了. 后来是dubbo已经停止维护,所以xds文件通过url已经拿不到了,查资料发现dubbo.jar里是带有xds文件的,spring怎么读不到

webpack打包注意事项

打包protobuf时导出全局变量(使用webpack), 注意文件的编码为ANSI.UTF(一定要无BOM), 否则webpack复制文件会产生乱码(js错误) packet_config.js var goog = require('google-protobuf'); var global = Function('return this')(); goog.exportSymbol('aa.bb.cc', null, global); aa.bb.cc = function () { al

小程序iPhonex适配

1 <!-- 小程序 在app 里面写 是否判断他是IPhone X--> 2 wx.getSystemInfo({ 3 success: function(res) { 4 if (res.model.indexOf('iPhone X') != -1) { 5 that.globalData.isIphoneX = true //不等于-1 就是---- 6 } 7 } 8 }) 9 10 globalData: { 11 12 isIphoneX: false, 13 14 } 1 //

适用于hips ui的iPhoneX及以上适配方案

版本信息: hips ui: 0.1.43 须知: 随着hips ui的迭代,可能会解决适配问题,所以下面的方案是有时效性的. 如果你项目上很紧急,可以直接看第三部分解决方案,复制粘贴代码即可. 一. 无适配情况 自从iPhone X出了刘海屏后,对于我们前端是适配难度又更上一层楼.不知道你有没有遇到过如下情况 1.头尾嵌入边框 2.在适配了头尾之后,scroll框子没做适配,出现最后的内容别下方小黑条遮住的情况 3.适配了iPhoneX,却没有适配iPhoneXs Max 如果,你遇到过以上几