根据官网的说法,2020年4月之后所有提交到 App Store 的 iPhone 和 iPad 应用必须使用 iOS 13 以上的 SDK 进行编译,并支持 iPhone Xs Max 或 12.9 寸 iPad Pro (3代) 及以后版本的全屏幕设计。

Starting April, 2020, all iPhone and iPad apps submitted to the App Store will need to be built with the iOS 13 SDK or later. They must also support the all-screen design of iPhone XS Max or the 12.9-inch iPad Pro (3rd generation), or later.

1. 私有方法 KVC 可能导致崩溃

在 iOS 13 中部分方法属性不允许使用 valueForKeysetValue:forKey: 来获取或者设置私有属性,具体表现为在运行时会直接崩溃,并提示以下崩溃信息:

*** Terminating app due to uncaught exception 'NSGenericException', reason: 'Access to UISearchBar's _searchField ivar is prohibited. This is an application bug'

// 崩溃 api
UITextField *textField = [searchBar valueForKey:@"_searchField"];// 替代方案 1,使用 iOS 13 的新属性 searchTextField
searchBar.searchTextField.placeholder = @"search";// 替代方案 2,遍历获取指定类型的属性
- (UIView *)findViewWithClassName:(NSString *)className inView:(UIView *)view{Class specificView = NSClassFromString(className);if ([view isKindOfClass:specificView]) {return view;}if (view.subviews.count > 0) {for (UIView *subView in view.subviews) {UIView *targetView = [self findViewWithClassName:className inView:subView];if (targetView != nil) {return targetView;}}}return nil;
}// 调用方法UITextField *textField = [self findViewWithClassName:@"UITextField" inView:_searchBar];
复制代码

// 崩溃 api
[searchBar setValue:@"取消" forKey:@"_cancelButtonText"];// 替代方案,用同上的方法找到子类中 UIButton 类型的属性,然后设置其标题
UIButton *cancelButton = [self findViewWithClassName:NSStringFromClass([UIButton class]) inView:searchBar];
[cancelButton setTitle:@"取消" forState:UIControlStateNormal];
复制代码

// 崩溃 api。获取 _placeholderLabel 不会崩溃,但是获取 _placeholderLabel 里的属性就会
[textField setValue:[UIColor blueColor] forKeyPath:@"_placeholderLabel.textColor"];
[textField setValue:[UIFont systemFontOfSize:20] forKeyPath:@"_placeholderLabel.font"];// 替代方案 1,去掉下划线,访问 placeholderLabel
[textField setValue:[UIColor blueColor] forKeyPath:@"placeholderLabel.textColor"];
[textField setValue:[UIFont systemFontOfSize:20] forKeyPath:@"placeholderLabel.font"];// 替代方案 2
textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"输入" attributes:@{NSForegroundColorAttributeName: [UIColor blueColor],NSFontAttributeName: [UIFont systemFontOfSize:20]
}];
复制代码

关于iOS13 的一些适配相关推荐

  1. 鸿蒙系统下的搜狗输入法,搜狗输入法率先适配iPhone 11深色模式,用搜狗就对了!...

    11 日凌晨,苹果秋季新品发布会在乔布斯大剧院举行,除iPhone 11 等新硬件产品外,其中最受瞩目的莫过于IOS13 的深色模式了.在本次第三方APP的适配竞速赛中,拥有庞大用户量的搜狗输入法率先 ...

  2. 百度APP iOS暗黑模式适配的完美解决方案

    原创:liushaohua 百度APP技术团队 一 背景 在2019WWDC的开场演讲中,苹果公布了即将推出的iOS13 DarkMode的新特性.此新特性不仅可以在夜晚保护视力,而且对于使用OLED ...

  3. 华为mate30与iphone11哪个好

    华为mate30正面搭载一块6.26寸的OLED屏幕,分辨率为23401080,像素密度为398ppi,而iPhone11搭载的则是6.1寸LCD屏幕,分辨率为1792828,像素密度为326ppi. ...

  4. (0106)iOS开发之iOS13 适配

    UIWebview 将被废止 UITextField 的私有属性 _placeholderLabel [self.textField setValue:self.placeholderColor fo ...

  5. (0105)iOS开发之iOS13 暗黑模式(Dark Mode)适配

    导读: Material Design & iOS 13 黑暗模式总结探索 暗黑模式苹果开发文档 如何不进行系统切换样式的适配 注意 同一工程内多个Assets文件在打包后,就会生成一个Ass ...

  6. IOS屏幕适配(四)最新系统IOS13适配

    IOS屏幕适配(四)最新系统IOS13适配 3. IOS 最新系统适配问题 3.1 IOS 13 适配 3.1.1 即将废弃的 LaunchImage 3.1.2 Sign in with Apple ...

  7. ios13 无法传参_免费更新浪漫雅圆+Bauhaus优化适配iOS13

    上次更新的时候,更新对维吾尔族语言的支持,应微信上面某位常年跟少数民族朋友打交道的朋友的要求而更新.具体情况如下: 微信里面有个朋友,常年跟维吾尔族朋友打交道,反馈我的字体里面对维吾尔族语言支持不是很 ...

  8. uniapp和5+app适配苹果iOS13暗黑模式教程

    iOS13开始苹果引入了暗黑模式(DarkMode),在黑暗模式下,系统界面配色都会相应变暗,同时App也需要进行适配. HBuilderX2.6.3+版本开始支持对暗黑模式的适配处理. 全局开启暗黑 ...

  9. iOS开发之iOS13 暗黑模式(Dark Mode)适配

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/shifang07/article/de ...

  10. iOS13适配之暗黑模式(Dark Mode)

    如果是老项目,改动太多,不想适配暗黑模式的话,有个偷懒的方法.或者还没适配完又不想给用户看,可以先暂时全局关闭暗黑模式:在 Info.plist 文件中,添加 key 为 User Interface ...

最新文章

  1. Hystrix和ribbon的超时时长准确配置的理论依据
  2. C# 解决串口接收数据不完整
  3. [转]automaticallyAdjustsScrollViewInsets(个人认为iOS7中略坑爹的属性)
  4. 用批处理命令加WinRAR实现自动备份文件数据
  5. CSliderCtrl(滑块)控件
  6. java讲师北京_Java工程师提升空间大,前途好,该如何跨入它的大门呢?
  7. android程序无法安装,安卓手机安装不了软件怎么办 手机无法安装软件原因和方法...
  8. 分享PHP多功能在线工具箱网站源码,安装教程详解
  9. arcgis地理空间数据库学习记录02-地理数据库迁移
  10. 实用网址备忘(实时更新)
  11. 初探PHP开源采集器----蓝天采集器
  12. AUTOCAD——命令重复、撤销与重做
  13. U3D游戏开发工程师正确入行姿势指南
  14. 【mysql】图文展示Mysql锁
  15. 18天掌握Java SE jvav梳理总结 从jvav到架构师
  16. NASA WIND卫星观测数据作图——origin
  17. 3分钟掌握自给IP地址
  18. 个人微信ipad二次开发
  19. ChinaRAP中国道路(路网)风险评估系统研究与应用
  20. 有道云笔记android手写,有道云笔记Android1.1.0发布:新增手写涂鸦功能

热门文章

  1. 端口与进程-----Window cmd命令
  2. 旁枝末梢(我好像稍微理解了mvc和mvvm)
  3. 第一百一十二节,JavaScript浏览器检测
  4. Automysqlbackup: WARNING: Turning off multicore support, since pigz isn’t there.
  5. 验证只能以英文字母开头的字符串
  6. 在linux下使用ftp客户端命令
  7. Nginx代理服务器使用
  8. webservice测试工具
  9. MySQL数据库优化技术之数据库表的设计
  10. ME53N采购申请查询时增加屏幕的增…