代码之家  ›  专栏  ›  技术社区  ›  ZeroOnet

当弹出UIWebViewController,然后返回UITabBarController时,选项卡栏的高度将改变

  •  1
  • ZeroOnet  · 技术社区  · 7 年前

    我注意到 UITabBarController 当弹出一个 UIViewController UITABBARC控制器 在iOS 12设备中。这样地:

    enter image description here

    我该怎么修?

    1 回复  |  直到 7 年前
        1
  •  2
  •   B2Fq    7 年前

    用这个

    import UIKit
    
    class FixedTabBar: UITabBar {
    
        var itemFrames = [CGRect]()
        var tabBarItems = [UIView]()
    
    
        override func layoutSubviews() {
            super.layoutSubviews()
    
            if itemFrames.isEmpty, let UITabBarButtonClass = NSClassFromString("UITabBarButton") as? NSObject.Type {
                tabBarItems = subviews.filter({$0.isKind(of: UITabBarButtonClass)})
                tabBarItems.forEach({itemFrames.append($0.frame)})
            }
    
            if !itemFrames.isEmpty, !tabBarItems.isEmpty, itemFrames.count == items?.count {
                tabBarItems.enumerated().forEach({$0.element.frame = itemFrames[$0.offset]})
            }
        }
    }