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.
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
view.frame = newframe;
ou
view.center = newcenter;
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;
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);