簡體   English   中英

更改 TabBar 蒙版顏色(非透明)

[英]Change TabBar mask color (non-transparent)

我正在創建一個左上角和右上角為圓角的 TabBar。

我正在使用圖層蒙版來實現這一點,它工作正常,但是我需要蒙版顏色為白色(其透明顯示帶有以下代碼的 VC 背景色)。

是否可以使用以下方法將蒙版背景顏色設置為白色?

我試過設置 layer 和 layer.mask 背景顏色但沒有成功(我無法更改 VC 背景顏色)。

當前代碼:

self.tabBar.layer.masksToBounds = true
self.tabBar.isTranslucent = true
self.tabBar.barStyle = .default
self.tabBar.layer.cornerRadius = 28
self.tabBar.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner]

謝謝。

如果要將背景顏色設置為圖層蒙版,則需要另一個圖層

這個你所需要的效果?

你可以試試這個:

extension UITabBar {

func roundCorners(corners: UIRectCorner, backgroundColor: UIColor, cornerColor: UIColor, radius: Int = 20) {

    self.backgroundColor = cornerColor
    let parentLayer = CALayer()
    parentLayer.frame = bounds
    parentLayer.backgroundColor = backgroundColor.cgColor
    layer.insertSublayer(parentLayer, at: 0)

    let maskPath = UIBezierPath(roundedRect: bounds,
                                byRoundingCorners: corners,
                                cornerRadii: CGSize(width: radius, height: radius))

    let mask = CAShapeLayer()
    mask.frame = bounds
    mask.path = maskPath.cgPath
    parentLayer.mask = mask
}
}

暫無
暫無

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

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