2010-12-03 5 views

Répondre

51

Voilà comment le faire avec une seule ligne de code:

myview.frame = CGRectMake(23, 50, myview.frame.size.width, myview.frame.size.height); 

ou

[myview setFrame:CGRectMake(23, 50, myview.frame.size.width, myview.frame.size.height)]; 
+0

Ok, donc il n'y a pas une méthode pour définir la taille seulement! – MatterGoal

+3

Vous pouvez également aller: '[myview setFrame: CGRectMake (23, 50, CGRectGetWidth (myview.frame), CGRectGetHeight (myview.frame))];' – runmad

+1

@runmad Votre réponse est également le moyen préféré par Apple, voir http: //developer.apple.com/library/ios/documentation/graphicsimaging/reference/CGGeometry/Reference/reference.html –

31

Vous devez définir à la fois tout le cadre. Essayez:

CGRect newFrame = myview.frame; 
newFrame.size = CGSizeMake(23.0, 50.0); 
myview.frame = newFrame; 
+0

Ne pas oublier de mettre le clip subviews si vous avez un imbriqué UIView etc ... –

3

Pas que je sache. Plutôt que de modifier la propriété d'image de votre vue, vous pouvez modifier la propriété bounds de sorte que, quelle que soit la valeur que vous avez définie pour x et y, elle n'affectera pas votre position d'affichage. Assurez-vous que vous utilisez 0 pour x et y.

self.myView.bounds = CGRectMake(0,0, newWidth, newHeight);