So fügen Sie eine kreisförmige Maske zu einem UIImageview und ändern Sie den Rahmen und konzentriert sich dabei?

Möchte ich hinzufügen, eine kreisförmige Maske zu UIImageVIew. Hier ist die Funktion, bin mit hinzufügen die Maske..

- (void) addMaskToBounds:(CGRect) maskBounds
{
    CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];

    CGPathRef maskPath = CGPathCreateWithEllipseInRect(maskBounds, NULL);
    maskLayer.bounds = maskBounds;
    [maskLayer setPath:maskPath];
    [maskLayer setFillColor:[[UIColor blackColor] CGColor]];
    maskLayer.position = CGPointMake(maskBounds.size.width/2, maskBounds.size.height/2);

    [self.imageView.layer setMask:maskLayer];
}

Bin in der Lage, fügen Sie die Maske, aber das problem tritt auf, da bin verändert, das Bild Rahmen und center zusammen mit ihm. Das Bild wird vergrößert und klein gemacht, basierend auf der Benutzer-Aktionen. Daher würde ich zusätzlich die Maske zweimal, wenn klein und bei Vergrößerung. So, Da bin animieren Sie den Rahmen ändern, während der Animation das Bild verzerrt oder verdrängt. Wie überwinde ich diese ?

Ich denke, es ist am besten erklärt mit einem Beispiel-Projekt. Hier habe ich eine Demo-Projekt https://github.com/akshaynhegde/MaskImage auf GitHub, führen Sie es einfach, um zu sehen, mein problem und lassen Sie mich wissen, wie das problem zu beheben.

InformationsquelleAutor akshaynhegde | 2013-03-09

Schreibe einen Kommentar