iphonex 和xcode9的一些坑

1  我们老项目xocde升级后,用模拟器跑iphonex的时候,会发现导航栏下移,没有出现想像中的齐流海,   如图就像刚出来的王者荣耀!!![443FB264-B01C-40EF-BC4D-FC16100BFF61.png](http://upload-images.jianshu.io/upload_images/2581353-f75afa759e44c092.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

解决方法:  因为你的launchImage 是老版本,现在要升级为最新版本; 因为没有iphonex 的启动图,所以系统默认的还是老版本,所以即使你项目用iphonex 运行,但是得到的还是上下全黑的小6屏; 将老版本launchImage 删掉,然后重新创一个;
2  在打包的时候 新版本的xcode会让你在icon里面加一个1024*1024的图, 如果你不加,那么在上传appstore的时候会报错;加上去就行;

3 iphonex 的适配问题; 我在下面给定义了几个宏 很好辨别;
/** 屏幕尺寸 */

#define kSCREEN_WIDTH [UIScreen mainScreen].bounds.size.width
#define kSCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height

/** 适配iphone X */

//状态栏,以前是20,现在判断一下,可以获取到最新的状态栏的高度
#define kStatusBarHeight [[UIApplication sharedApplication] statusBarFrame].size.height
//导航栏的高度不变
#define kNavBarHeight 44.0
//以前导航栏和状态栏一起为64,我们都是写死的,现在要改为这个
#define kTopHeight (kStatusBarHeight + kNavBarHeight)
//判断tabBar的高度,以前是49,现在因为加了下面的安全区,加上34
#define kTabBarHeight ([[UIApplication sharedApplication] statusBarFrame].size.height>20?83:49)
//这个是判断如果是iphonex 他的状态栏如果大于20 为iphonex 系统(考虑到以后可能会有大量iphonex系统机型,没有用高度判断) 如果是iphonex那么,他下面的安全区就得空出来,那么我们以前tabview的高度就该变为 kSCREEN_HEIGHT-KGESTURESHomeHeight-kTopHeight
#define KGESTURESHomeHeight ([[UIApplication sharedApplication] statusBarFrame].size.height>20?34:0)
//判断iphonex 系统
#define KIS_IPhoneX kStatusBarHeight>20?YES:NO

如果是ios11 那么分享shar会失败;更新sdk

你可能感兴趣的:(iphonex 和xcode9的一些坑)