[英]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.