2017-06-02 144 views
0

我设法增加了我的导航栏的高度,但是我遇到了问题,那个标题和按钮位于导航栏的底部。垂直中心导航栏视图

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) 

其实,设置只适用于我的头衔,以及按钮栏的位置保持不变。

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

+0

你为什么不展示你究竟是如何增加导航栏高度的? –

+0

有关此问题的评论中的夫妇链接可能会有所帮助:https://stackoverflow.com/questions/44181264/move-navigationbars-left-and-right-barbuttonitems-vertically-upwards – DonMag

回答

0

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