web-dev-qa-db-ja.com

プログラムによるUIViewサイズの変更

UIViewを持っているので、ユーザーがボタンに触れたときにサイズを変更したい。

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;

どれも機能せず、何も変更しないでください。 UIViewに固定幅と高さを設定したい。

39
onivi

正しく理解できたら、self.myviewのサイズを変更する必要があります。ただし、どのフレームでもフレームを設定しているわけではありません。代わりに、View Controllerといくつかの検索フィールドでsendFrame:を呼び出そうとしています。前者はコンパイラエラーを与えなかったことに驚いています。

目的C

CGRect newFrame = self.myview.frame;

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

スイフト

let newFrame = myview.frame

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

または

view.center = newcenter;
5
lbsweek

私の場合、ビューの幅に制約があるため、ティムが言ったように幅を変更できませんでした。

私がやったこと:制約に、たとえばmyviewWidthConstraintという名前のアウトレットを作成しました。次に、このアウトレットを使用して、ビューの幅を次のように変更しました。

mycell.myviewWidthConstraint.constant = newSize;
5
Filoux

サイズフィールドは読み取り専用で、新しいフィールドを作成するだけです-

//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