码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2017-11-10 16:49:36      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:oda   self   就是   ini   edr   dev   tom   sso   view   

转自:

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及更高版本

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

标签:oda   self   就是   ini   edr   dev   tom   sso   view   

原文地址:http://www.cnblogs.com/16zj/p/7815114.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!