iOS13 开发适配更新

作者: Tony_HYH | 来源:发表于2019-09-27 14:51 被阅读0次
iOS13.png

一、模态视图弹出方式改变

/*
 Defines the presentation style that will be used for this view controller when it is presented modally. Set this property on the view controller to be presented, not the presenter.
 If this property has been set to UIModalPresentationAutomatic, reading it will always return a concrete presentation style. By default UIViewController resolves UIModalPresentationAutomatic to UIModalPresentationPageSheet, but system-provided subclasses may resolve UIModalPresentationAutomatic to other concrete presentation styles. Participation in the resolution of UIModalPresentationAutomatic is reserved for system-provided view controllers.
 Defaults to UIModalPresentationAutomatic on iOS starting in iOS 13.0, and UIModalPresentationFullScreen on previous versions. Defaults to UIModalPresentationFullScreen on all other platforms.
 */
@property(nonatomic,assign) UIModalPresentationStyle modalPresentationStyle API_AVAILABLE(ios(3.2));

就是控制器的modalPresentationStyle属性默认值发生了变化,在iOS13后,系统新添加了一个属性枚举值


UIModalPresentationStyle枚举值.png
新的交互方式默认为下拉dismiss,且导航栏会留白空出;
如果需要点击取消按钮才消失界面的,需要适配;
如果项目中页面高度全部是屏幕尺寸,那么多出来的导航栏高度就会有问题。

如果回到以前的默认值,

//iOS8以上 self为目标控制器
self.modalPresentationStyle = UIModalPresentationOverFullScreen;
//iOS8以下
self.modalPresentationStyle = UIModalPresentationFullScreen;

//如果是UINavigationController为根控制器
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:searchViewController]; 
nav.modalPresentationStyle = UIModalPresentationOverFullScreen;

二、私有方法 KVC 不允许使用

iOS13后不再允许valueForKey、setValue:forKey: 等方法获取或设置私有属性,虽然编译可以通过,但是在运行时会直接崩溃或不起作用。

👇下面的方法都没有用了哦
// UITextField 的 _placeholderLabel
[textField setValue:[UIColor blackColor] forKeyPath:@"_placeholderLabel.textColor"];
 
// UISearchBar 的 _searchField
[searchBar valueForKey:@"_searchField"];

UITextField有一个attributedPlaceholder属性,占位符富文本,和UILabel等控件的富文本设置一样,可以设置文字颜色,尺寸等。

UITextField *textField = [[UITextField alloc]init];
textField.placeholder = @"我是占位符哦~";
[self.view addSubview:textField];
        
NSMutableAttributedString *attribute_placeholder = [[NSMutableAttributedString alloc]initWithString:textField.placeholder];
[attribute_placeholder addAttribute:NSForegroundColorAttributeName
                              value:[UIColor colorWithWhite:1 alpha:0.2]
                              range:NSMakeRange(0, textField.placeholder.length)];
[attribute_placeholder addAttribute:NSFontAttributeName
                              value:[UIFont systemFontOfSize:14]
                              range:NSMakeRange(0, textField.placeholder.length)];
[searchField setAttributedPlaceholder:attribute_placeholder];

三、searchBar设置textField问题

我们不用再用kvc获取UISearchBar的textField了,因为,iOS13中系统将searchTextField属性暴露出来了,不再是私有属性了,你可以直接调用。

UITextField *searchField = _searchBar.searchTextField;

注意:以上写法在iOS13以下手机运行会崩溃,所以,暂时要写成两种情况的写法,iOS13依然沿用之前的旧写法。
[[[UIDevice currentDevice] systemVersion] doubleValue] >= 13.0加以区分


四、苹果登录 Sign In with Apple

关于苹果登录,如果应用没有使用第三方登录,可以不用添加,如果已经使用了第三方登录(比如微信、QQ、微博等),就必须要加上苹果登录,且要放在最前面。

五、[_LSDefaults sharedInstance]崩溃

遇到'+[_LSDefaults sharedInstance]: unrecognized selector sent to class 0x1dd8f5d40'崩溃问题,可以尝试~pod updatepod库,暂时可以解决问题。


推荐:https://www.jianshu.com/p/d2a0fa7bcbef

相关文章

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

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

  • iOS 13适配

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

  • iOS之iOS13适配总结

    前言 随便iOS开发开始更新变成Xcode11,适配iOS13变成了现在的当务之急。 新特性适配 一、新添加的Da...

  • iOS13 开发适配更新

    一、模态视图弹出方式改变 就是控制器的modalPresentationStyle属性默认值发生了变化,在iOS1...

  • 暗黑模式开发

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

  • iOS13适配

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

  • 2019--09iOS13适配

    iOS13适配iOS13更新后对Ai定损、一车一件项目进行适配 做了一下调查 1 2 3 4 5 6 目前调研的只...

  • runloop应用之iOS线程保活

    iOS13适配iOS13更新后对Ai定损、一车一件项目进行适配 做了一下调查 1 2 3 4 5 6 目前调研的只...

  • CocoPods更换Ruby源及升级版本

    升级xcode11,项目适配iOS13,MJExtension报错,github上提示需要更新最新版本,使用终端 ...

  • iOS13 开发适配

    今天分享一下近期对iOS13适配的问题,如有不对的地方请大家在下面留言。 1、如何关闭程序中的暗黑模式? iOS1...

网友评论

    本文标题:iOS13 开发适配更新

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