【问题标题】:iPhone X not respecting set tab bar hidden animatediPhone X不尊重设置标签栏隐藏动画
【发布时间】:2018-05-02 01:20:26
【问题描述】:

我有一个视图控制器被推送到标签栏控制器内的导航控制器上。视图控制器 hidesBottomBarWhenPushed 并且在视图上将出现它显示一个工具栏。无论我尝试什么,当视图控制器被推动或弹出时,它都不会停止动画工具栏向上/向下滑动。这似乎只是 iPhone X 上的一个问题。有谁知道如何解决它?

【问题讨论】:

标签: ios uinavigationcontroller uitabbarcontroller uitoolbar iphone-x


【解决方案1】:

这个答案https://stackoverflow.com/a/47225653/1211917对我有帮助:

    class SafeAreaFixTabBar: UITabBar {

    var oldSafeAreaInsets = UIEdgeInsets.zero

    @available(iOS 11.0, *)
    override func safeAreaInsetsDidChange() {
        super.safeAreaInsetsDidChange()

        if oldSafeAreaInsets != safeAreaInsets {
            oldSafeAreaInsets = safeAreaInsets

            invalidateIntrinsicContentSize()
            superview?.setNeedsLayout()
            superview?.layoutSubviews()
        }
    }

    override func sizeThatFits(_ size: CGSize) -> CGSize {
        var size = super.sizeThatFits(size)
        if #available(iOS 11.0, *) {
            let bottomInset = safeAreaInsets.bottom
            if bottomInset > 0 && size.height < 50 && (size.height + bottomInset < 90) {
                size.height += bottomInset
            }
        }
        return size
    }

    override var frame: CGRect {
        get {
            return super.frame
        }
        set {
            var tmp = newValue
            if let superview = superview, tmp.maxY !=
                superview.frame.height {
                tmp.origin.y = superview.frame.height - tmp.height
            }

            super.frame = tmp
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 2018-03-11
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    相关资源
    最近更新 更多