【发布时间】:2021-06-03 11:23:40
【问题描述】:
我正在尝试设置标签栏的左上角和右上角以及阴影。
我正在使用 UIView 扩展中的以下函数:
func addShadowWithCurve(usingCorners corners : UIRectCorner,cornerRadii : CGSize, shadowColor:UIColor,shadowOpacity:Float,shadowRadius:CGFloat,shadowOffset:CGSize){
let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: cornerRadii)
layer.masksToBounds = false
let frameLayer = CAShapeLayer()
frameLayer.path = path.cgPath
frameLayer.shadowPath = path.cgPath
frameLayer.lineWidth = 1
frameLayer.strokeColor = RRSTokens.colorGrey10.cgColor
frameLayer.fillColor = backgroundColor?.cgColor
frameLayer.shadowOffset = shadowOffset
frameLayer.shadowOpacity = shadowOpacity
frameLayer.shadowRadius = shadowRadius
frameLayer.shadowColor = shadowColor.cgColor
layer.mask = frameLayer
layer.insertSublayer(frameLayer, at: 0)
}
但结果不是预期的,标签栏顶部有一条黑色边框线可见。我已经尝试过多次尝试围绕图层属性来删除那条黑线,但没有运气。这是它的样子:
【问题讨论】:
-
你能展示你应用这个函数的视图的代码吗?例如
rectangleView.addShadowWithCurve(... -
self.tabBar.addShadowWithCurve(usingCorners: [.topLeft,.topRight],cornerRadii: CGSize(width: 20, height: 20), shadowColor: UIColor(red: 0, green: 0, blue : 0, alpha: 0.15), shadowOpacity: 1, shadowRadius: 6, shadowOffset: CGSize(width: 0, height: -2))
-
对我来说很好用:screenshot。您可能在某处设置了
tabBar的borderWidth和borderColor。 -
感谢您的检查,我们可以去除曲线周围的黄色以查看背景颜色吗?
-
谢谢@aheze
标签: ios swift xcode uiview layer