Я убедился, что слой маски находится в правильном положении, добавив его в мой контроллер вида (закомментированная строка). Тем не менее, он выглядит черным, хотя цвет фона определяется красным цветом. В дополнение к этому, правило заполнения evenOdd, похоже, не выполняется, так как я получаю прямоугольник поверх filterSelection, а не наоборот. Наконец, filterSelection (UIPickerView) за пределами maskLayer по-прежнему появляется, поэтому маска не имеет никакого эффекта.
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