更改 TabBar 遮罩颜色(不透明)
Change TabBar mask color (non-transparent)
我正在创建一个左上角和右上角圆角的 TabBar。
我正在使用图层蒙版来实现这一点并且它工作正常,但是我需要蒙版颜色为白色(它的透明显示 VC 背景颜色和下面的代码)。
是否可以通过以下方法将蒙版背景颜色设置为白色?
我已经尝试设置图层和 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]
谢谢。
如果要将背景颜色设置为图层蒙版,则需要另一个图层
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
}
}
我正在创建一个左上角和右上角圆角的 TabBar。
我正在使用图层蒙版来实现这一点并且它工作正常,但是我需要蒙版颜色为白色(它的透明显示 VC 背景颜色和下面的代码)。
是否可以通过以下方法将蒙版背景颜色设置为白色?
我已经尝试设置图层和 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]
谢谢。
如果要将背景颜色设置为图层蒙版,则需要另一个图层
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
}
}