iOS 13 适配

热门标签

,

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

前言

苹果爸爸又出新品,想必各位大佬,都是紧跟其步伐,在此总结下目前iOS 13 遇到的奔溃,以及Dark Mode 等问题

setValue:forKeyPath: 方法奔溃

iOS 13 适配

 

这个是使用setValue:forKeyPath:方法直接设置textFiled的textColor,用测试手机测试了下,只有iOS13 是奔溃的,iOS13以下的不会有问题,我们使用attribute的方式,就可以解决此问题,代码如下:

   NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:@""];
    [attributedStr setAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13], NSForegroundColorAttributeName:[UIColor colorFromHexString:@"#666666"]} range:NSMakeRange(0, 15)];
    
    self.rightTextField.attributedText = attributedStr;
    

如果用swift,使用KVC也会奔溃,可以使用runtime来代理,可以看下大佬的这个文章

暗黑模式 - Dark mode

iOS13 用户可以选择暗黑模式

iOS 13 适配

看着是不错,就是有bug,当设置了Dark 样式,项目中有些界面会受到影响,看了下代码大多数是cell,弹框,键盘等,看了微信的App也有问题,原来iOS 13 是“来自天堂的魔鬼”😃😁哈哈哈~~

iOS 13 适配

上面是项目中的一个设置界面,只有在iOS13 且设置了暗黑模式,才有问题。
那么怎么修复呢?
在官方文档中链接1可以看到

当我们在一个普通的 controlle, view 上重写这个属性,只会影响当前的视图,不会影响前面的 controller 和后续 present 的 controller。
但是当我们在 window 上设置 overrideUserInterfaceStyle 的时候,就会影响 window 下所有的 controller, view,如果想监听是Light或者是Dark模式,可以通过下面方法:

//Called when the iOS interface environment changes.
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection;

so,如果想修改上面设置页面的出现的“黑色cell”,可以在Appdelegate中添加如下代码:

    if (@available(iOS 13.0, *)) {
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000
        self.window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
#endif
    } else {
        // Fallback on earlier versions
    }
    

如果不使用__IPHONE_OS_VERSION_MAX_ALLOWED的宏,则你的项目在Xcode11以下版本会报错,因为overrideUserInterfaceStyle在 iOS13 以下是没有这个api的

iOS 13 适配

状态栏

状态栏适配iOS 13,代码如下:

    if (@available(iOS 13.0, *)) {
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000
        [[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleDarkContent];
#endif
    } else {
        [[UIApplication sharedApplication]setStatusBarStyle:UIStatusBarStyleDefault];
    }
    

目前对iOS 13 测试出现的问题只有这几个,后续还会详细测试,有时间再分享,如有问题,请大佬们赐教~😄😄

标签:

未经允许不得转载:作者:SheaYang, 转载或复制请以 超链接形式 并注明出处 技术狗|博客
原文地址:《iOS 13 适配》 发布于2019-10-12

分享到:
赞(0)

评论 抢沙发

6 + 2 =


iOS 13 适配

长按图片转发给朋友

Vieu4.0主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录