簡體   English   中英

中心導航欄垂直視圖

[英]center navigation bar views vertically

我設法增加了導航欄的高度,但是我遇到了這個問題,標題和按鈕位於導航欄的底部。

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)

實際上,該設置僅適用於我的標題,並且按鈕欄的位置保持不變。

但是我認為我的解決方案不是最好的。

增大導航欄的大小不是一個好習慣。 取而代之的是,您可以在導航欄下方添加具有相同顏色的uiview,然后刪除導航欄邊框以使其看起來像高度增加了。 這是yelp如何做到的示例。 在此處輸入圖片說明

我在另一個線程中發布了該問題的解決方案。 希望這可以幫助。

垂直對齊的UINavigationItems

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM