2011-02-04 6 views
1

Je voudrais déplacer un ImageView autour de l'écran plusieurs fois, jusqu'à présent, j'ai trouvé deux façons. Cependant, je ne suis pas sûr de savoir lequel est le plus efficace, ou peut-être les deux sont les mêmes. S'il vous plaît, pourrais-je avoir un conseil? Merci.Quelle est la meilleure façon de déplacer un ImageView

// Create ImageView and add subview 
UIImageView imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]]; 
imgView.frame = CGRectMake(0, 0, image_width, image_height); 
[[self view] addSubview:imgView]; 
[imgView release]; 

// New Coordinates 
int xNew = 100; 
int yNew = 130; 

// First way to move ImageView: 
imgView.frame = CGRectMake(xNew, yNew, image_width, image_height); 

// Second way to move ImageView: 
CGPoint center; 
center.x = xNew; 
center.y = yNew; 
imgView.center = center; 

Répondre

1

Techniquement, la seconde est un petit peu plus vite parce que vous ne touchez pas les limites de vues d'image, qui en théorie pourrait être coûteux, selon La mise en œuvre d'Apple. Mais dans le second cas, le cadre d'une vue peut tomber en dehors des limites des pixels (la règle d'affichage Retina, n'est-ce pas?) Qui peut entraîner des images floues. Notez toutefois que les résultats seront différents car dans le premier cas (xNew, yNew) est un coin supérieur gauche d'une vue, alors que dans le second cas (xNew, yNew) est le centre d'une vue.

1
imgView.frame = CGRectMake(xNew, yNew, image_width, image_height); 

imgView.center = CGPointMake(xNew, yNew); 

En fait, ce qui est plus de la comparaison. Si vous avez besoin de redimensionner l'objet ou si vous voulez donner des coordonnées à partir du coin supérieur gauche, j'irais avec le premier si vous avez juste besoin de le déplacer et que vous êtes à l'aise avec les cordes centrées. méthode.

2

Vous pouvez également utiliser CGAffineTransformTranslate, comme ceci:

imgView.transform = CGAffineTransformIdentity; 
imgView.transform = CGAffineTransformTranslate(imgView.transform, 0, -70); 
Questions connexes