Kreismaskierung für das Beschneiden von Bildern in ios

Ich versuche, der Bildansicht eine kreisförmige Maske zu geben, und ich muss den Bildteil in einem kreisförmigen Bereich zuschneiden, was gut funktioniert. Ich habe jedoch ein Problem mit der Maske, die im angehängten Bild mit Anmerkungen versehen ist.

Folgen sind Code-Teile, die ich zum Maskieren verwendet habe.

Hinzufügen einer Maske zur Bildansichtsebene

CAShapeLayer *maskLayer = [CAShapeLayer layer];
self.imageView.layer.mask = maskLayer;
self.maskLayer = maskLayer;

Erstelle eine Formebene für den Kreis, den wir über dem Bild (der Grenze des Kreises) zeichnen.

CAShapeLayer *circleLayer = [CAShapeLayer layer];
circleLayer.lineWidth = 3.0;
circleLayer.fillColor = [[UIColor clearColor] CGColor];
circleLayer.strokeColor = [[UIColor blackColor] CGColor];
[self.imageView.layer addSublayer:circleLayer];
self.circleLayer = circleLayer;

create circle path

[self updateCirclePathAtLocation:CGPointMake(self.view.bounds.size.width / 2.0, self.view.bounds.size.height / 2.0) radius:self.view.bounds.size.width * 0.30];

- (void)updateCirclePathAtLocation:(CGPoint)location radius:(CGFloat)radius
{
    self.circleCenter = location;
    self.circleRadius = radius;

    UIBezierPath *path = [UIBezierPath bezierPath];
    [path addArcWithCenter:self.circleCenter
                    radius:self.circleRadius
                startAngle:0.0
                  endAngle:M_PI * 2.0
                 clockwise:YES];

    /*
    [[UIColor colorWithWhite:0 alpha:0.1] setFill];
    [path fill];
    */

    self.maskLayer.path = [path CGPath];
    self.circleLayer.path = [path CGPath];
}

Kann jemand einen Vorschlag machen, um den weißen Bereich um die kreisförmige Maske herum teilweise sichtbar zu machen, oder transparente CGColor mit alpha anwenden?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage