项目上线前一天赶上了iOS正式版发布,于是就。。。适配了下,收集了广大老司机们的技能经验,现在记录了下过程,留作备用。
1. 首先为了tableView的
tableView的界面错乱、组间距也都乱了,需要先关闭计算行高,在appdelegate.m中直接写
if (@available(iOS 11.0, *)) {
UITableView.appearance.estimatedRowHeight = 0;
UITableView.appearance.estimatedSectionHeaderHeight = 0;
UITableView.appearance.estimatedSectionFooterHeight = 0;
}
2. iOS11 之后,跳转App Store评论 这位大佬的经验
在iOS11 之后,会跳的Today 里面 说 无法连接到App Store(这是扯淡的)
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");
}
4.iPhoneX的适配
如果在iPhone X 上启动是 这个鸟样,
就需要一张 1125 *2436的图片加入启动页LaunchImage。
如果放进去是这鸟样,说明放错地方了,就跟左边框里一样,随便扔了个地方,
这时候就需要 勾选右边箭头那个地方, 就会出来专门放iPhone X的位置,
放进去再重新启动,就会发现这个问题是解决了。。。接下来,问题又来了。
很明显,图标好多都变形了。。
这是因为我用了宽高比来做适配,之前是写死的 现在需要加上
#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 就会自己给生成,重启模拟器试试 就会发现好了。
5 屏幕尺寸更大了。
iPhone X在宽度上还是 375 ,但是高度上增加了145pt,达到了 812,跟之前的宽高比都变了,这就很尴尬了,之前用宽高比是配的,需要看上面第四条的,动态修改宽高比了。因为iPhone X的分辨率非常高,所以一定要使用@3x的素材,@2x的放上去明显有点别扭,没有3x的 高清,不过一般不仔细找还是分不清楚的。之前使用Masonry,bottom 如果以self.view 为基准的话,这里就会很尴尬了。就会出现这样的情况:
这个地方具体怎么搞,就需要跟产品设计一起商量下了。
6,相册权限问题
在iOS11之前,访问相册和保存照片到相册需要用户授权,需要在info.plist添加NSPhotoLibraryUsageDescription这个就行啦 。
而iOS11之后默认开启访问相册权限(NSPhotoLibraryUsageDescription还是要加的,适配iOS11之前), 添加图片到相册需要用户授权,需要添加NSPhotoLibraryAddUsageDescription权限了。
7 上传到App Store
上传到App Store 还需要一个iPhone X的icon,1024的高清的。
这些就是我APP上遇到的问题,其他的暂时还没有,之后遇到了再补充。