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?