47

我有一个 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

4 回答 4

88

如果我理解正确,您想更改self.myview. 但是,您绝不会设置它的框架。相反,您试图调用sendFrame:视图控制器和一些搜索字段。我很惊讶,前一个没有给你编译器错误。

目标 C

CGRect newFrame = self.myview.frame;

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

迅速

var newFrame = myview.frame

newFrame.size.width = 200
newFrame.size.height = 200
myview.frame = newFrame
于 2013-09-02T23:25:03.850 回答
11

就我而言,我对视图的宽度有限制,所以我不能像蒂姆说的那样改变宽度。

我所做的:myviewWidthConstraint例如,我在约束上创建了一个出口。然后我使用这个插座来改变我的视图的宽度,如下所示:

mycell.myviewWidthConstraint.constant = newSize;
于 2016-11-02T13:36:26.857 回答
7

大小字段是只读的,只需新建一个 -

//Set height
let f = view.frame;      //Grab current
view.frame = CGRect(x: f.origin.x, y: f.origin.y, width: f.width, height: 200);
于 2018-01-11T15:54:38.937 回答
5
view.frame  = newframe;

或者

view.center = newcenter;
于 2014-02-12T08:18:04.237 回答