iOS 13 SDK 适配

升级 Xcode 11 与 iOS 13 SDK 遇到的一些坑

2019-12-19  本文已影响0人  居然是村长

一、UIStatusBar 对象直接就没有了

???
原来使用骚操作获取的对象 
[[UIApplication sharedApplication] valueForKey:@"_statusBar"]
现在不能骚操作,连对象都直接没有了

二、私有属性不给用

老代码里还有这些:
@"_placeholderLabel.font"
@"_placeholderLabel.textColor"
@"_searchField"
@"_statusBar"
...

注释掉,或者使用副文本字符串等其他方式实现
Exp: 老老实实写代码,用什么骚操作,坑死后面人

三、Button 的 contentEdgeInsetstitleEdgeInsets 有变化

具体变化说不上来
原来使用 `EdgeInsets` 可以使用 `button` 的外围做调整
现在尝试了貌似不确定,在切换【深色模式】、【浅色模式】还会出现跳动

Exp: 虽然这种重写系统方法的操作很帅,但是保不准苹果改套路啊,还是笨方法(上面图片,下面文本这样子搞不会出问题)

四、一些系统控件样式有变化

UISegmentControl
// tintColor 不在有效

presentViewController 
// 弹出效果变化,不在全屏,默认类似卡片推上

五、APNS DeviceToken 获取方式变化

原来的 Data 稍有变化,需要兼容处理

    // iOS 13
    NSMutableString *deviceTokenStringM = [NSMutableString string];
    const char *bytes = deviceToken.bytes;
    NSInteger count = deviceToken.length;
    for (int i = 0; i < count; i++) {
        [deviceTokenStringM appendFormat:@"%02x", bytes[i]&0x000000FF];
    }
上一篇下一篇

猜你喜欢

热点阅读