转载

iOS开发之 Xcode 9 和iOS11 适配问题

项目上线前一天赶上了iOS正式版发布,于是就。。。适配了下,收集了广大老司机们的技能经验,现在记录了下过程,留作备用。

1. 首先为了tableView的

tableView的界面错乱、组间距也都乱了,需要先关闭计算行高

self.tableView.estimatedRowHeight = 0;
self.tableView.estimatedSectionHeaderHeight = 0;
self.tableView.estimatedSectionFooterHeight = 0;

2. iOS11 之后,跳转App Store评论 这位大佬的经验

在iOS11 之后,会跳的Today 里面 说 无法连接到App Store(这是扯淡的)

iOS开发之 Xcode 9 和iOS11 适配问题

image

 NSString *appstoreUrlString = [NSString stringWithFormat: @"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=%@",AppStoreAppId ];
NSURL * url = [NSURL URLWithString:appstoreUrlString];
if ([[UIApplication sharedApplication] canOpenURL:url]){
        [[UIApplication sharedApplication]openURL:url];
 }else{
        WKLog(@"can not open");
}

要改成:(就链接改了下。。。)

NSString *appstoreUrlString = [NSString stringWithFormat:@"itms-apps://itunes.apple.com/cn/app/idXXXXXX?mt=8&action=write-review", AppStoreAppId ];
NSURL * url = [NSURL URLWithString:appstoreUrlString];
if ([[UIApplication sharedApplication] canOpenURL:url]){
                    [[UIApplication sharedApplication]openURL:url];
 }else{
        WKLog(@"can not open");
}

3.iPhoneX的适配

如果在iPhone X 上启动是 这个鸟样,

iOS开发之 Xcode 9 和iOS11 适配问题

image

就需要一张 1125 *2436的图片加入启动页LaunchImage。

如果放进去是这鸟样,说明放错地方了,就跟左边框里一样,随便扔了个地方,

iOS开发之 Xcode 9 和iOS11 适配问题

image

这时候就需要 勾选右边箭头那个地方, 就会出来专门放iPhone X的位置,

iOS开发之 Xcode 9 和iOS11 适配问题

image

放进去再重新启动,就会发现这个问题是解决了。。。接下来,问题又来了。

iOS开发之 Xcode 9 和iOS11 适配问题

image

很明显,图标好多都变形了。。

这是因为我用了宽高比来做适配,之前是写死的 现在需要加上

#define IS_IPHONE_X_HEIGHT         ([[UIScreen mainScreen] bounds].size.height >= 812.0f ? 812.0f : 667.0f)
#define ScaleWidth(width)           width/ 375.0*KSCREEN_WIDTH
#define ScaleHeigth(height)           height/IS_IPHONE_X_HEIGHT*KSCREEN_HEIGHT
#define WKSW(width)           width/375.0*KSCREEN_WIDTH
#define WKSH(height)           height/IS_IPHONE_X_HEIGHT*KSCREEN_HEIGHT

先判断屏幕尺寸,在具体的来搞就行啦。

补充一个不算适配的问题,如果使用LaunchImage做启动,发现在在 4.7 或者5.5的设备上 ,打印出来 屏幕的小小都是4 的尺寸,那就是LaunchImage 设置错了。

如果无法确定哪个地方用哪张 ,保证Portrait 勾选的情况下,一起拖进去,XCode 就会自己给生成,重启模拟器试试 就会发现好了。

iOS开发之 Xcode 9 和iOS11 适配问题

image

正文到此结束
Loading...