通过将遮罩层添加到我的视图控制器(注释行)中,确保遮罩层处于正确的位置。但是,即使背景颜色指定为红色,它仍显示为黑色。除此之外,由于我在filterSelection上获得了矩形而不是倒数,因此似乎甚至没有发生evenOdd的填充规则。最后,maskLayer外部的filterSelection(UIPickerView)仍然出现,因此遮罩没有效果。
guard let BG = filterSelectionBG else { return }
let maskLayer = CAShapeLayer()
maskLayer.backgroundColor = UIColor.red.cgColor
let path = CGMutablePath()
path.addRect(filterSelection.bounds)
path.addRect(BG.frame)
maskLayer.path = path
maskLayer.fillRule = .evenOdd
//self.view.layer.addSublayer(maskLayer)
filterSelection.layer.mask = maskLayer