// // UINavigationBar+FixSpace.swift // PaiaiUIKit // // Created by ffib on 2019/1/15. // Copyright © 2019 yb. All rights reserved. // import UIKit @available(iOS 11.0, *) extension UINavigationBar { static func swizzedMethod() { let originalSelector = #selector(UINavigationBar.layoutSubviews) let swizzledSelector = #selector(UINavigationBar.swizzle_layoutSubviews) guard let originalMethod = class_getInstanceMethod(self, originalSelector), let swizzledMethod = class_getInstanceMethod(self, swizzledSelector) else { return } let didAddMethod = class_addMethod(self, originalSelector, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod)) if didAddMethod { class_replaceMethod(self, swizzledSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod)) } else { method_exchangeImplementations(originalMethod, swizzledMethod) } } @objc func swizzle_layoutSubviews() { swizzle_layoutSubviews() layoutMargins = .zero for view in subviews { guard NSStringFromClass(view.classForCoder).contains("ContentView") else { continue } view.layoutMargins = UIEdgeInsets.zero break } } }