ios - 当弹出一个 UIWebView Controller 然后回到 UITabBarController 时,tab bar 的高度会改变

标签 ios swift

我注意到 UITabBarController 标签栏的高度会被压缩,当弹出一个 UIViewController 包含一个 web view 然后回到 UITabBarController 时iOS 12 设备。像这样:

enter image description here

我该如何解决?

最佳答案

使用这个

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]})
        }
    }
}

关于ios - 当弹出一个 UIWebView Controller 然后回到 UITabBarController 时,tab bar 的高度会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53221812/

相关文章:

ios - 保持多个用户偏好的最佳方法(NSUserDefaults、XML 文件或数据库)

ios - 更改 UIToolBar 的 NSConstraints 时应用程序崩溃

iphone - 新的 fbconnect Api 错误?

objective-c - 从 NSURLResponse 完成 block 中获取数据

swift - 导入如何快速工作?

swift - @objc、@class_protocol 和 :class in swift Swift 之间的区别

swift - 使用 PDFKit 提取 PDF 高亮显示

swift - 在主应用程序发布的 Today Widget 中观察通知

ios - 为什么我会收到此错误 : Result values in '? :' expression have mismatching types '[String]?' and 'String'

html - IOS 中的字体渲染问题