我有一个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设置固定的宽度和高度。
答案 0 :(得分:76)
如果我理解正确,您想要更改self.myview
的大小。但是,在任何时候你都没有设置它的框架。相反,您试图在视图控制器和某些搜索字段上调用sendFrame:
。我很惊讶,前一个没有给你编译错误。
尝试:
CGRect newFrame = self.myview.frame;
newFrame.size.width = 200;
newFrame.size.height = 200;
[self.myview setFrame:newFrame];
答案 1 :(得分:5)
view.frame = newframe;
或
view.center = newcenter;
答案 2 :(得分:5)
在我的情况下,我对视图的宽度有一个约束,所以我不能像Tim说的那样改变宽度。
我做过的事情:我在我的constaint上创建了一个名为myviewWidthConstraint
的插座。然后我用这个插座来改变我的视图宽度:
mycell.myviewWidthConstraint.constant = newSize;
答案 3 :(得分:3)
大小字段是只读的,只需创建一个新字段 -
//Set height
let f = view.frame; //Grab current
view.frame = CGRect(x: f.origin.x, y: f.origin.y, width: f.width, height: 200);