我正在尝试实现与iPhone X的``今天''选项卡中新的App Store状态栏相似的东西。
App Store - Today

所以只是想知道什么是实现。我试图更改导航栏的高度/将半透明的UIView覆盖在状态栏上,但是鉴于该栏仅存在于iPhone X上,所以似乎并不令人满意。谢谢。

最佳答案

为导航栏创建类

class NavigationBar: UINavigationBar {

    override func layoutSubviews() {
        super.layoutSubviews()

        for subview in self.subviews {
            let stringFromClass = NSStringFromClass(subview.classForCoder)

            if stringFromClass.contains("BarBackground") {
                subview.frame.origin.y = -20
                subview.frame.size.height = 64
            }
        }
    }
}


并创建所需大小的导航栏

let navigationBar = NavigationBar(frame: CGRect(origin: CGPoint(x: 0,
                                                                        y: 20),
                                                        size: CGSize(width: view.frame.width,
                                                                     height: 30)))
       navigationBar.isTranslucent = false
       self.view .addSubview(navigationBar)

关于swift - 无法在iOS 11中更改UINavigationBar的高度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47645826/

10-09 15:35
查看更多