中心导航栏垂直视图

时间:2017-06-02 14:47:09

标签: ios uinavigationcontroller uinavigationbar

我设法增加导航栏的高度,但我遇到了问题,标题和按钮位于导航栏的底部。

extension UINavigationBar {

    open override func sizeThatFits(_ size: CGSize) -> CGSize {
        let v = self.value(forKey: "frame") as? CGRect
        return v?.size ?? CGSize(width: UIScreen.main.bounds.width, height: 44)
    }

}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    navigationBar.frame = CGRect(x: 0, y: 0, width: bounds.width, height: 64)
}

enter image description here

我尝试使用

设置偏移量
navigationBar.setTitleVerticalPositionAdjustment(-10, for: .default)
navigationItem.leftBarButtonItem?.setBackgroundVerticalPositionAdjustment(-10, for: .default)
navigationItem.rightBarButtonItem?.setBackgroundVerticalPositionAdjustment(-10, for: .default)
navigationItem.rightBarButtonItem?.setBackButtonBackgroundVerticalPositionAdjustment(-10, for: .default)
navigationItem.leftBarButtonItem?.setBackButtonBackgroundVerticalPositionAdjustment(-10, for: .default)

实际上该设置仅适用于我的标题,按钮栏的位置保持不变。

但我不认为我的解决方案是最好的。

2 个答案:

答案 0 :(得分:0)

增加导航栏的大小并不是一个好习惯。相反,您可以在相同颜色的导航栏下添加uiview,并删除导航栏边框,使其看起来像高度增加。以下是yelp如何做到这一点的示例。 enter image description here

答案 1 :(得分:0)

我在另一个帖子中发布了此问题的解决方案。希望这会有所帮助。

vertically aligning UINavigationItems