【问题标题】:center navigation bar views vertically垂直居中导航栏视图
【发布时间】:2017-09-12 15:21:47
【问题描述】:

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

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

我尝试使用

设置偏移量
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)

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

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

【问题讨论】:

标签: ios uinavigationcontroller uinavigationbar


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    vertically aligning UINavigationItems

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-23
      • 2017-07-17
      • 2016-11-27
      相关资源
      最近更新 更多