版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weiwandaixu_/article/details/100511940
1. 就是各种私有属性的访问 一一删除替换其他方案
2. 暗黑模式 文字颜色 按钮颜色 view颜色 全局修改一下 再部分微调
Label Extension
func setTextColor(_ color: UIColor) {
if #available(iOS 13.0, *) {
let titleColor = UIColor(dynamicProvider: { (trait) -> UIColor in
return trait.userInterfaceStyle == .dark ? UIColor.label : color
})
self.textColor = titleColor
} else {
self.textColor = color
}
}
Button Extension
func setTitleColor(color: UIColor?, state: UIControl.State = .normal) {
if #available(iOS 13.0, *) {
let titleColor = UIColor(dynamicProvider: { (trait) -> UIColor in
return trait.userInterfaceStyle == .dark ? UIColor.label : (color ?? UIColor.white)
})
self.setTitleColor(titleColor, for: state)
} else {
self.setTitleColor(color, for: state)
}
}
func setBgColor(backgroundColor:UIColor, forState state:UIControl.State = .normal) {
if #available(iOS 13.0, *) {
let backgroundColor = UIColor(dynamicProvider: { (trait) -> UIColor in
return trait.userInterfaceStyle == .dark ? UIColor.label : backgroundColor
})
self.setBackgroundImage(UIImage.createImageWithColor(backgroundColor), for: state)
} else {
self.setBackgroundImage(UIImage.createImageWithColor(backgroundColor), for: state)
}
}
view Extension
func setBackgroundColor(_ color: UIColor) {
if #available(iOS 13.0, *) {
let backgroundColor = UIColor(dynamicProvider: { (trait) -> UIColor in
return trait.userInterfaceStyle == .dark ? UIColor.systemBackground : color
})
self.backgroundColor = backgroundColor
} else {
self.backgroundColor = color
}
}
3. present 的可折叠 下滑
func present(_ : UIViewController, animated: Bool, completion: (() -> Void)?)
设置vc 时 如果没有设置 modalPresentationStyle 默认就会是 :
@available(iOS 13.0, *)
case automatic
如果需要之前的样式就需要修改为
vc.modalPresentationStyle = .fullScreen
4. CNCopyCurrentNetworkInfo
Apple改变了有关iOS 13的WiFi的一些内容。如果您想使用CNCopyCurrentNetworkInfo,您的应用需要具备以下功能之一
有权访问位置的应用
您的应用是当前启用的VPN应用
您的应用通过NEHotspotConfiguration配置了设备当前正在使用的WiFi网络
如果您不满足,这些条件中的至少一个 CNCopyCurrentNetworkInfo在iOS 13将始终返回nil
https://developer.apple.com/documentation/systemconfiguration/1614126-cncopycurrentnetworkinfo
以下代码适用于iOS 12:
/// retrieve the current SSID from a connected Wifi network
private func retrieveCurrentSSID() -> String? {
let interfaces = CNCopySupportedInterfaces() as? [String]
let interface = interfaces?
.compactMap { [weak self] in self?.retrieveInterfaceInfo(from: $0) }
.first
return interface
}
/// Retrieve information about a specific network interface
private func retrieveInterfaceInfo(from interface: String) -> String? {
guard let interfaceInfo = CNCopyCurrentNetworkInfo(interface as CFString) as? [String: AnyObject],
let ssid = interfaceInfo[kCNNetworkInfoKeySSID as String] as? String
else {
return nil
}
return ssid
}
5. UIApplication.shared.statusBarFrame.height
iOS 13.0中不推荐使用'statusBarFrame':改为使用窗口场景的statusBarManager属性:
let height = view.window?.windowScene?.statusBarManager?.statusBarFrame.height ?? 0
6.MPMoviePlayerController在iOS13已经不能用了
可以 使用 AVFoundation 里的 AVPlayer
7. 苹果登录 示例
https://github.com/yiruchujian/AppleLogin
个人建议 使用最好可以多系统的一些经常使用的方法做一个简易的二次封装 这样修改起来会比较快捷 代码逻辑也会比较清晰
描述文件和真机调试包:https://download.csdn.net/download/weiwandaixu_/11653336
描述文件 只能下载 iOS 13.1 的beta版 需要13.0 的话 需要自己先升级mac 系统到10.15的beta版 再去这个地址下载手机相应的固件 https://developer.apple.com/download/#ios-restore-images-iphone-new 通过ituns 安装
————————————————
版权声明:本文为CSDN博主「一如初夏丿」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weiwandaixu_/article/details/100511940