iOS11&iPhoneX适配&Xcode9打包注意事项
2017-10-25 15:05
429 查看
一 升级iOS11适配
1.1,适配UITableViewif#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 letLL_iPhoneX = (kScreenW == Double(375.0) && kScreenH == Double(812.0) ?true:false) letkNavibarH = LL_iPhoneX ? Double(88.0) : Double(64.0) letkTabbarH = LL_iPhoneX ? Double(49.0+34.0) : Double(49.0) letkStatusbarH = 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打包注意事项
- iOS11&iPhoneX适配&Xcode9打包注意事项
- iOS11&iPhoneX适配&Xcode9打包注意事项
- Unity3d_Xcode打包注意事项之 agora(声网)sdk 打包
- Xcode8.0 打包ipa注意事项
- [Xcode]iOS提审打包注意事项
- xcode打包时的注意事项
- 用VS.NET打包并自动安装SQL数据库--注意事项
- IPHONE 开发 8 -- Object C Foundation.h它包括所有的类 方法 集合,-(id)init,iphone上使用Sqlite的注意事项小结
- iphone使用loadNibNamed载入view在内存中得注意事项
- 记cocos2dx 3.2版本打包的一些注意事项
- JAVA关于Fat Jar打包注意事项
- PSP自制程序打包ISO方法及注意事项
- 用Xcode制作和使用framework的步骤和注意事项
- iPhone开发笔记(20)EGOImageView的使用方法及注意事项
- xcode删除main.Storyboard 保持工程干净 需要注意事项
- xcode导入Cocos2dx项目的注意事项
- PyQt5 Pyinstaller打包注意事项
- vs2010打包发布注意事项
- 被IDEA的打包功能打败了:dubbo服务端打包注意事项