我正在创建一个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]
谢谢。
答案 0 :(得分:0)
如果要将背景色设置为图层蒙版,则需要另一个图层
this是您需要的效果吗?
您可以尝试以下方法:
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
}
}