Comment ajouter un masque circulaire à une UIImageview et changer le cadre et les centres en faisant de la sorte?

Je voudrais ajouter un masque circulaire à UIImageVIew. Voici la fonction qui suis aide pour ajouter le masque..

- (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];
}

Suis en mesure d'ajouter le masque, mais le problème se produit car suis l'évolution de l'image et du centre. L'image est agrandie et a fait des petits basée sur les actions de l'utilisateur. Donc je serait d'ajouter le masque deux fois lorsque les petits et agrandis. Donc, Depuis que suis animer le cadre de changement, tandis que l'animation de l'image déformée, ou déplacées. Comment puis-je surmonter cela ?

Je suppose que c'est mieux expliqué par un exemple de projet. Ici, j'ai créé un projet de Démonstration https://github.com/akshaynhegde/MaskImage sur GitHub, il suffit de lancer pour voir mon problème et je voudrais savoir comment résoudre le problème.

Ceci a été demandé avant: stackoverflow.com/questions/12564336/...

OriginalL'auteur akshaynhegde | 2013-03-09