众所周知,对于一些多边形的绘制,我们可以使用 CAShapeLayer 配合 UIBezierPath,然后再用这个 layerViewmask 即可。但是一种情况是不行的,对于 UIVisualEffectView,iOS10 之前 self.blurView.layer.mask = someShapeLayer 这一句是 ok 的,但是 iOS10 之后,这样设将无效,而应该使用 self.blurView.maskView = maskView。具体代码如下图所示:

详细解释可参考这里