2010-12-03 26 views
2

J'essaie de créer un anneau d'échelle qui évolue au centre d'un UIView.Mise à l'échelle d'un UIImageView au centre d'un UIView

installation est la suivante:

Dans IB, j'ai vue et mon ImageView attachés (juste un PNG transparent avec un anneau). Configurez un IBOutlet à ImageView (theRing) et un bouton pour déclencher l'action.

ImageView est défini sur «scaleToFill» dans IB.

Le code de l'action est:

-(IBAction)buttonPressed:(id)sender{ 

    CGRect theFrame = theRing.frame; 

    theFrame.size.width = 16; 
    theFrame.size.height = 16; 

    [theRing setFrame:theFrame]; //Scale down the ring first 
    theRing.center = [self.view center]; // Center the ring in the center of the view 

    theFrame.size.width = 300; 
    theFrame.size.height = 300; 

    [theRing setAlpha:1.0]; 

    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:1.0]; 

    [theRing setFrame: theFrame]; 
    [theRing setAlpha:0.0]; 
    theRing.center = [self.view center]; 

    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDidStopSelector: @selector(animEnd:finished:context:)]; 
    [UIView commitAnimations]; 

} 

maintenant - quand je frappe le bouton la première fois, l'image est mise à l'échelle avec le point de référence étant le coin supérieur gauche du ImageView (moyens, il échelles , mais l'anneau se développe en bas à droite de l'écran). MAIS: Lorsque j'appuie à nouveau sur le bouton, tout fonctionne comme prévu (cela signifie que l'anneau reste au milieu de l'écran et est mis à l'échelle).

Des idées?

Répondre

0

essayer d'utiliser le mode ImageView Aspect Fill

+0

Merci - mais cela n'a pas aidé ... ne fonctionne toujours pas sur la première tentative ... – Swissdude