簡體   English   中英

UIKit:如何對 UINavigationBar 的角進行圓角和剪裁?

[英]UIKit: how can I round and clip the corners of a UINavigationBar?

我想環繞導航控制器欄的兩個底角,所以它看起來像這樣:

在此處輸入圖片說明

我試過這個:

final class RoundedNavigationController: UINavigationController {
    override func viewDidAppear(_ animated: Bool) {
        self.navigationBar.layer.cornerRadius = 20
        self.navigationBar.clipsToBounds = true
        self.navigationBar.layer.maskedCorners = [.layerMinXMaxYCorner,.layerMaxXMaxYCorner]
    }
}

但這是我得到的結果:

在此處輸入圖片說明

為什么安全區域部分也會被剪掉?

感謝您的幫助

為什么安全區域部分也會被剪掉?

導航的邊界頂部位於狀態欄的底部 導航欄的繪制超出其邊界向上延伸到“狀態欄”區域(並一直到屏幕頂部)。

因此,您不能將導航欄的clipsToBoundstrue ,因為您會破壞它的繪制方式。

更好的策略可能是構建導航欄的背景圖像,使其看起來像您想要的那樣。 因此,例如,我能夠獲得這種效果:

在此處輸入圖片說明

不是通過舍入圖層角和剪裁。

暫無
暫無

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

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