Ive создал UIView
с полупрозрачным черным фоном, чтобы сидеть в моем главном приложении. Цель Im здесь - создать форму вырезанного круга где-то в этом UIView
, где не видно полупрозрачный черный фон, дающий эффект черной маски на все изображение, кроме круговой области (это выделите кнопку в этой области).
Мне удалось использовать CAShapeLayer
для создания круговой маски, но это имело противоположный эффект (т.е. остальная часть зрения ясна, а внутри круга - полупрозрачный черный). из круга, чтобы сохранить полупрозрачный черный цвет, а затем внутри, чтобы быть ясным. Вот код, который я использовал, как бы я мог заставить его работать в обратном направлении? Мой blackMask
- это полупрозрачный черный вид и my buttonCircle
- это идентификатор круга, который должен оставаться ясным.
Возможно, мне нужно каким-то образом инвертировать путь?
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
CGRect maskRect = buttonCircle.frame;
CGPathRef path = CGPathCreateWithEllipseInRect(maskRect, NULL);
maskLayer.path = path;
CGPathRelease(path);
blackMask.layer.mask = maskLayer;
EDIT: попробуйте это сейчас, не видя никакой маски вообще с этим:
UIView *circularMaskView = [[UIView alloc] initWithFrame:buttonCircle.frame];
circularMaskView.backgroundColor = [UIColor greenColor];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
CGPathRef path = CGPathCreateWithEllipseInRect(buttonCircle.frame, NULL);
maskLayer.path = path;
CGPathRelease(path);
circularMaskView.layer.mask = maskLayer;
[blackMask addSubview:circularMaskView];