我正在尝试在Swift中获得这种效果,尝试了许多方法,例如UIBezierPath等,但是没有什么比我想要实现的更接近了。我对图像的底部,即曲线和阴影感兴趣。
使用UIBezierPath获得的最佳结果是剪切放置在图像底部的视图。但是,我不能在那儿放阴影。那么,还有其他想法吗?谢谢!
PS:我不喜欢使用代码的方法,因此不想发布它,但是无论如何,这里是:
let freeform = UIBezierPath()
freeform.move(to: .zero)
freeform.addQuadCurve(to: CGPoint(x: viewArch.width / 2, y: viewArch.height), controlPoint: CGPoint(x: viewArch.width / 4, y: viewArch.height))
freeform.addQuadCurve(to: CGPoint(x: viewArch.width, y: 0), controlPoint: CGPoint(x: viewArch.width * 0.75, y: viewArch.height))
freeform.addLine(to: CGPoint(x: viewArch.width, y: viewArch.height))
freeform.addLine(to: CGPoint(x: 0, y: viewArch.height))
freeform.addLine(to: .zero)
freeform.close()
let maskLayerA = CAShapeLayer()
maskLayerA.path = freeform.cgPath
viewArch.layer.mask = maskLayerA
结果如下:
但是我在白色视图上而不是图像上使用了路径,所以不知道如何现在放置阴影。
为了清楚起见,我在这里概述了viewArch: