升级 Xcode 11 与 iOS 13 SDK 遇到的一些坑
2019-12-19 本文已影响0人
居然是村长
一、UIStatusBar 对象直接就没有了
???
原来使用骚操作获取的对象
[[UIApplication sharedApplication] valueForKey:@"_statusBar"]
现在不能骚操作,连对象都直接没有了
二、私有属性不给用
- 以前很多骚操作都不给用了
老代码里还有这些:
@"_placeholderLabel.font"
@"_placeholderLabel.textColor"
@"_searchField"
@"_statusBar"
...
注释掉,或者使用副文本字符串等其他方式实现
Exp: 老老实实写代码,用什么骚操作,坑死后面人
三、Button 的 contentEdgeInsets
和 titleEdgeInsets
有变化
具体变化说不上来
原来使用 `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];
}