美文网首页
iOS开发者关于iOS13的适配

iOS开发者关于iOS13的适配

作者: 赫力神 | 来源:发表于2019-11-28 15:03 被阅读0次

1.KVC访问私有属性的崩溃问题

在Xcode11上使用- (void)setValue:(nullable id)value forKeyPath:(NSString *)keyPath方法访问私有属性,编译时会崩溃,例如:

[textField setValue:[UIColorredColor]forKeyPath:@"_placeholderLabel.textColor"];///崩溃[textField setValue:[UIFontsystemFontOfSize:14]forKeyPath:@"_placeholderLabel.font"];

2.即将废弃的LaunchImage

随着苹果设备的型号日益增多,利用LaunchImage来设置启动图显然显得不够明智。

替代方式:使用LaunchScreen来设置启动图。LaunchScreen是iOS8引入的,支持AutoLayout+SizeClass,所以用起来十分方便。据消息,明年4月份后,所有app必须提供LaunchScreen了,尽早替换吧。

3.presentViewController的问题

iOS 13 的 presentViewController 默认有视差效果,模态出来的界面现在默认都下滑返回。 一些页面必须要点确认才能消失的,需要适配。如果项目中页面高度全部是屏幕尺寸,那么多出来的导航高度会出现问题。所以手动设置一下Style吧

let mainViewController=UIView()// 即需要被present的viewmainViewController.modalPresentationStyle=.fullScreenself.present(mainViewController,animated:true,completion:nil)

注意必须是在跳传的时候设置才有用,个人体验了一把。

4.增加蓝牙权限申请

iOS13以前,使用蓝牙时可以直接用,不会出现权限提示,iOS13后,再使用就会提示了。 在info.plist里增加

<key>NSBluetoothAlwaysUsageDescription</key><string>我们需要使用您的蓝牙</string>`

5.MPMoviePlayerController 彻底弃用

MPMoviePlayerController 在 iOS 9 开始被弃用,如果在 iOS 13 中继续使用的话会直接抛出异常:***Terminating app due to uncaught exception'NSInvalidArgumentException',reason:'MPMoviePlayerController is no longer available. Use AVPlayerViewController in AVKit.'

6.UISearchDisplayController彻底弃用

在 iOS 8 之前,我们在 UITableView 上添加搜索框需要使用 UISearchBar + UISearchDisplayController 的组合方式。

在 iOS 8 之后,苹果就已经推出了 UISearchController 来代替这个组合方式。在 iOS 13 中,如果还继续使用 UISearchDisplayController会直接导致崩溃,崩溃信息如下

Terminating app due to uncaught exception'NSGenericException',reason:'UISearchDisplayController is no longer supported when linking against this version of iOS. Please migrate your application to UISearchController.'

解决方法:使用UISearchController代替

8.APP 底部有自定义tabbar,弹出页面后关闭,底部的tabbar文字颜色变为蓝色了,

解决办法:在自定义标签栏那里判断一下,

if #available(iOS 13.0, *){

self.tabBar.unselectedItemTintColor = UIColor.init(hex: "a1a1a1")

self.tabBar.tintColor = UIColor.init(hex: "30b0b5")

} else{

item.setTitleTextAttributes([NSAttributedString.Key.foregroundColor: UIColor.init(hex: "a1a1a1")], for: .normal)

item.setTitleTextAttributes([NSAttributedString.Key.foregroundColor: UIColor.init(hex: "30b0b5")], for: .selected)

}

相关文章

  • iOS13 适配问题 看这一篇就够了

    技术参考: apple login IOS13适配-详细 iOS 13 适配(持续更新中) iOS13适配 掘金 ...

  • iOS 13适配

    技术参考: apple login IOS13适配-详细 iOS 13 适配(持续更新中) iOS13适配 掘金 ...

  • iOS 关于iOS13那些事

    本文记录一些关于iOS 13的内容,欢迎指正和补充! 一、关于iOS13适配 1.关于一些私有属性的适配,iOS ...

  • iOS13 暗黑模式的适配(Dark Mode)

    尽管iOS13已经推出了大半年多的时间,但是依旧还是有不少APP还未适配iOS13。对此,苹果公司再次给开发者们发...

  • 暗黑模式开发

    iOS13暗黑模式适配(项目开发版) iOS 13 DarkMode 暗黑模式 IOS 暗黑模式适配---基础适配

  • iOS13适配

    参考: iOS13 适配踩坑 - 持续更新 iOS 13 适配要点总结 iOS 13 适配要点总结 1、prese...

  • iOS高德地图适配暗黑模式

    iOS13以后iOS开发者讨论最大的应该就是暗黑模式了,我自己最近也在加班加点地为公司所有iOS项目适配暗黑模式,...

  • 关于WRNavigationBar iOS12、iOS13导航栏

    集成WRNavigationBar 适配iOS12 iOS13导航栏问题 在修复iOS13下在iPhone11机型...

  • 关于WRNavigationBar iOS12、iOS13导航栏

    集成WRNavigationBar 适配iOS12 iOS13导航栏问题 在修复iOS13下在iPhone11机型...

  • iOS13适配研究

    iOS13今年秋季会发布,最近深入研究了下公司APP适配iOS13的注意点,适配如下。 1.由于Xcode10移除...

网友评论

      本文标题:iOS开发者关于iOS13的适配

      本文链接:https://www.haomeiwen.com/subject/szdbwctx.html