以编程方式更改UIView大小

时间:2013-09-02 21:27:56

标签: iphone ios 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设置固定的宽度和高度。

4 个答案:

答案 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);