web-dev-qa-db-fra.com

Changer la taille de UIView par programmation

J'ai un UIView, je veux changer la taille lorsque l'utilisateur appuie sur un bouton.

CGRect newFrame = self.myview.frame;

newFrame.size.width = 200;
newFrame.size.height = 200;
[self setFrame:newFrame];

CGRect newFrame = self.searchField.frame;

newFrame.size.width = 200;
newFrame.size.height = 200;
self.searchField.frame=newFrame;

Aucun d'entre eux ne fonctionne, ne change rien. Je souhaite définir une largeur et une hauteur fixes sur UIView.

39
onivi

Si je comprends bien, vous voulez changer la taille de self.myview. Cependant, à aucun moment, vous n'en définissez le cadre. Au lieu de cela, vous essayez d'appeler sendFrame: sur le contrôleur de vue et sur un champ de recherche. Je suis surpris que l'ancien ne vous ait pas donné d'erreur de compilation.

Objectif C

CGRect newFrame = self.myview.frame;

newFrame.size.width = 200;
newFrame.size.height = 200;
[self.myview setFrame:newFrame];

rapide

let newFrame = myview.frame

newFrame.size.width = 200
newFrame.size.height = 200
myview.frame = newFrame
80
Tim Bodeit
view.frame  = newframe;

ou

view.center = newcenter;
5
lbsweek

Dans mon cas, j'avais une contrainte sur la largeur de ma vue, je ne pouvais donc pas la changer comme le disait Tim.

Ce que j'ai fait: j'ai créé un point de vente sur ma constaint, appelé myviewWidthConstraint par exemple. Ensuite, j'ai utilisé cette sortie pour changer la largeur de ma vue comme ceci:

mycell.myviewWidthConstraint.constant = newSize;
5
Filoux

Les champs de taille sont en lecture seule, créez-en un nouveau -

//Set height
let f = view.frame;      //Grab current
view.frame = CGRect(x: f.Origin.x, y: f.Origin.y, width: f.width, height: 200);
4
J-Dizzle