bezierpath 视图上的阴影为角落添加了奇怪的笔触

shadow on bezierpath view adds weird strokes to corners

我想重新创建 AppStore 的 "today" 带有圆角和浅色阴影的卡片。

我创建了一个路径、一个 maskLayer 和一个单独的 shadowLayer,根据多个消息来源,这就是这样做的方式。

然而,问题是我可爱的带阴影的圆角矩形的角上有一些灰色笔触。我该如何解决这个问题?我尝试了不同的阴影不透明度和不同的半径。它没有解决我的问题。

在这里你可以看到我的截图和下面的代码。

override func loadView() {
        let view = UIView()
        view.backgroundColor = .white
        self.view = view

        // create sample view and add to view hierarchy
        let bigTeaser = UIView(frame: CGRect(x: 16, y: 200, width: 343, height: 267))
        bigTeaser.backgroundColor = UIColor.white
        view.addSubview(bigTeaser)

        // create the path for the rounded corners and the shadow
        let roundPath = UIBezierPath(roundedRect: bigTeaser.bounds, cornerRadius: 20)

        // create maskLayer
        let maskLayer = CAShapeLayer()
        maskLayer.frame = bigTeaser.bounds
        maskLayer.path = roundPath.cgPath
        bigTeaser.layer.mask = maskLayer

        // create shadowLayer
        let shadowLayer = CAShapeLayer()
        shadowLayer.path = roundPath.cgPath
        shadowLayer.frame = bigTeaser.frame
        shadowLayer.shadowOpacity = 0.3
        shadowLayer.shadowRadius = 24
        shadowLayer.shadowColor = UIColor.black.cgColor
        shadowLayer.shadowOffset = CGSize(width: 0, height: 2)

        // insert layers
        bigTeaser.superview!.layer.insertSublayer(shadowLayer, below: bigTeaser.layer)

    }

如果替换:

shadowLayer.path = roundPath.cgPath

shadowLayer.shadowPath = roundPath.cgPath

丑陋的边框会神奇地消失。