Вы называете слои CALayer?Есть ли какая-то причина, по которой вы не просто используете UIViews?
В любом случае, маски слоев могут быть легко созданы на виде:
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = frame;
maskLayer.path = maskPath.CGPath;
controller.view.layer.mask = maskLayer;