iOS 13适配
1. 安装时,加入Xcode11.3 后 原xcode会安装开发工具插件时候出现

点击安装插件之后会出现

目前没找到解决方案。只能在一个mac电脑上安装使用一个版本。
2.编译时,会出现libstdc++.6.0.9.tbd 文件找不到的错误提示,需要将文件重新放入工程c++文件目录下。
3.运行时,会出现另一个错误:
NSInteger numberOfBeforeSection = [_update[@""] numberOfItemsInSection:updateItem.indexPathBeforeUpdate.section];

此方法目前在Xcode11.3里调用UICollectionView方法需要强转成系统类名,即在_update[@""]加入(UICollectionView *)即可。
如下
NSInteger numberOfBeforeSection = [(UICollectionView *)_update[@""] numberOfItemsInSection:updateItem.indexPathBeforeUpdate.section];
4.接下来就是比较关注的适配暗黑模式了:建议暂时直接关闭暗黑模式,如果有需求时再添加。
//配置方式有两种,单页面配置 和 全局配置
if (@available(iOS 13.0, *)) {
self.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
}
单页配置
将需要配置的 UIViewControler 对象的 overrideUserInterfaceStyle 属性设置成 UIUserInterfaceStyleLight 或者 UIUserInterfaceStyleDark 以强制是某个页面显示为 浅/深色模式
全局配置
在工程的Info.plist的中,增加/修改 UIUserInterfaceStyle为UIUserInterfaceStyleLight或UIUserInterfaceStyleDark
————————————————
5.UISearchBar的页面crash (可能出现,目前项目中未暴露出来)
因为这一句代码:
UITextField *searchField = [self.searchBar valueForKey:@"_searchField"];
需要进行ios 13的适配工作demo如下
NSString *version = [UIDevice currentDevice].systemVersion;
if (version.doubleValue >= 13.0) {
// 针对 13.0 以上的iOS系统进行处理
UITextField *searchField;
NSUInteger numViews = [self.searchBar.subviews count];
for(int i = 0; i < numViews; i++) {
if([[self.searchBar.subviews objectAtIndex:i] isKindOfClass:[UITextField class]]) {
searchField = [self.searchBar.subviews objectAtIndex:i];
}
}
if (searchField) {
//这里设置相关属性
}else{}
} else {
// 针对 13.0 以下的iOS系统进行处理
UITextField *searchField = [self.searchBar valueForKey:@"_searchField"];
if(searchField) {
//这里设置相关属性
}else{}
}
以下问题暂时项目中未发现,如出现可参照以下方式更改。
6.uitextfield setvalue forkeypath方法失效
该方法在iOS13已经无效,系统禁止通过KVC访问。会导致直接崩溃。修改方法使用textfild 的 attributePlaceholder属性即可。
7.所有present的界面都会类似于sarfari网页视图一样的层叠方式显示。会导致项目部分页面无法横屏 返回无法刷新。在ios 13 里修改了vc的modalPresentationStyle的默认值为 -2 
要想解决这个问题很简单。直接设置present的vc模式为UIModalPresentationFullScreen(0)即可解决。变更后就会变成之前的跳转模式了。
8.Sign In with Apple
在iOS 13里添加了Sign In with Apple登录方式,根据苹果官网说明,2020年4月份之前需要所有第三方登录的app都需要更新,否则会拒审。具体可看苹果审核规则中的4.8章节。
更新细节可以参考这篇文章Sign In with Apple
9.statusbar修改背景色问题
iOS13 已经去掉了这个方式。
UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
新的替换方案为:
-(UIView *)statusBarUIview{
if(@available(iOS 13,*)){
int tag = 13004352;
UIWindow *window = [UIApplication sharedApplication].delegate.window;
UIView *view = [window viewWithTag:tag];
if (view) {
return view;
}else{
CGRect statusBarRect = [UIApplication sharedApplication].statusBarFrame;
UIView *statusBarView = [[UIView alloc]initWithFrame:statusBarRect];
statusBarView.tag = tag;
[window addSubview:statusBarView];
return statusBarView;
}
}else{
UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
return statusBar;
}
}
return nil;
}
10.子线程修改界面导致崩溃(比如相册首次授权回调必现,二次授权偶现)
在使用相册时我们会调用 [PHPhotoLibrary requestAuthorization:] 方法获取权限,获取的结果会通过一个带有PHAuthorizationStatus 信息的 block 进行回调。
解决方案:在 Xcode 中调试运行时,子线程修改界面会有紫色感叹号标出,注意修改成回到主线程即可。
iOS 13适配的更多相关文章
- Xcode 11新建工程.--iOS 13 SceneDelegate适配
收录文章::::::::::::::: iOS 13 适配要点总结 在Xcode 11 创建的工程,运行设备选择 iOS 13.0 以下的设备,运行应用时会出现黑屏现象.原因: Xcode 11 默认 ...
- iOS - 适配 iOS 13 之工兵连扫雷
iOS 13 支持适配的机型 目前最新 iPhone 11.iPhone 11 Pro和iPhone 11 Pro Max iPhone X.iPhone XR.iPhone XS.iPhone XS ...
- iOS 13 presentViewController
升级了iOS 13,发现代码中使用presentViewController的都变成了这样的,顶部留了一部分 查看present样式,iOS 13 默认自动适配,需要在present的时候,设置sty ...
- iOS屏幕适配
## iOS屏幕适配 ### iOS屏幕适配发展史 1> iPhone4以前(没有iPad) * 不需要屏幕适配 2> iPad.iPhone5等设备出现 * 需要做横竖屏适配 * aut ...
- iOS 9 适配需要注意的问题
iOS 9 适配需要注意的问题 1`网络适配_改用更安全的HTTPS iOS9把所有的http请求都改为https了:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL.采用TLS 1.2 协 ...
- 【转】iOS屏幕适配
一.iOS屏幕适配发展历程 设备 适配技术 4及以前(iPad未出) 直接用代码计算 有了iPad autoResizing 有不同屏幕的iPhone后 autoLayout 有更多不同屏幕的iPho ...
- iOS:界面适配--iPhone不同机型适配 6/6plus
iOS:界面适配--iPhone不同机型适配 6/6plus 机型变化 坐标:表示屏幕物理尺寸大小,坐标变大了,表示机器屏幕尺寸变大了: 像素:表示屏幕图片的大小,跟坐标之间有个对应关系 ...
- iOS 9 适配中出现的坑
整理 iOS 9 适配中出现的坑(图文) 2015-10-22 iOS开发 库克表示:“现在在中国有150多万的开发者在iOS当中开发应用程序,我们鼓励更多的人开发应用程序,也鼓励更多的创业加入.” ...
- iOS 10 适配 ATS(app支持https通过App Store审核)
iOS 10 适配 ATS 一. HTTPS 其实HTTPS从最终的数据解析的角度,与HTTP没有任何的区别,HTTPS就是将HTTP协议数据包放到SSL/TSL层加密后,在TCP/IP层组成IP数据 ...
随机推荐
- 《C Primer Plus(第6版)(中文版)》普拉达(作者)epub+mobi+azw3
内容简介 <C Primer Plus(第6版)中文版>详细讲解了C语言的基本概念和编程技巧. <C Primer Plus(第6版)中文版>共17章.第1.2章介绍了C语言编 ...
- wyh的dp入门刷题笔记
0: 靠前感觉之前dp抄题解都是抄的题解,自己从没有真正理解过dp.wyh下了很大决心从头学dp,于是便有了这篇文章. 1.背包 前四讲01背包&多重背包&完全背包(混合背包) :樱花 ...
- 「CF55D」Beautiful numbers
传送门 Luogu 解题思路 毒瘤数位DP,发现一个前缀我们只需要记录它对 \(\operatorname{lcm}(1,2,3,\cdots,9)=2520\) 取模的值即可,所以我们在 DP 时记 ...
- 黑客的探路狗ReconDog网站信息探测收集工具
工具下载地址:http://pan.baidu.com/s/1pLJnBLL 密码:gqlz OR https://github.com/UltimateHackers/ReconDog 下载并 ...
- 使用JavaScript和Canvas打造真实的雨滴效果
使用JavaScript和Canvas打造真实的雨滴效果 寸志 · 1 年前 我最近搞了一个有趣的项目——rainyday.js .我认为这个项目并不怎么样,而且,事实上这是我第一次尝试接触一些比弹窗 ...
- django+centos+mariadb读写分离完美实现(上)-mysql主从备份实现
首先画图一张,用来展示今天要做的事情,读写分离,个人理解就是使用mysql主从备份的原理,让两个数据库同时为自己提供服务.其中主库负责数据保存,从库负责数据展示,可以一主一从,也可以一主多从.从而降低 ...
- NO23 Linux正则表达式结合三剑客企业级实践--取IP
企业实践: 一.取IP的方法(用三剑客): grep: awk: sed:虽有三种,但是思路是一样的,用到正则有些表达细节不一样而已. 分析: sed***: 课堂试题: |sed -nr 's#^. ...
- 第1节 IMPALA:2、架构介绍
impala的架构以及查询计划: impalad :从节点 对应启动一个impala-server的进程 ,主要负责各种查询计划,官方建议与所有的datanode安装在同一台机器上面 impala-s ...
- C++编程学习(十二) STL
一.简介 标准模板库STL,是一组模板类和函数.提供了: 1.容器.用于存储信息. 2.迭代器.用于访问容器中的信息. 3.算法.操作容器内容. 1.容器 STL有两种类型的容器类: (1)顺序容器 ...
- Day6 - 牛客102C
链接:https://ac.nowcoder.com/acm/contest/102/C来源:牛客网 题目描述 We define a value of an interval is the seco ...