UIView setFrame问题

时间:2011-07-30 20:24:04

标签: ipad uiview uiviewcontroller

我必须做错事,但不知道是什么......

我尝试使用以下代码添加一个subView:

subMenuView = [[UISubMenuViewMainController alloc] init];

[subMenuView.view setFrame:CGRectMake(10,0,990,100)];

subMenuView.view.backgroundColor  = [UIColor whiteColor];

[self.view addSubview:subMenuView.view];

我希望我的视图位于(10,0)并且宽度/高度为990/100

但我没有得到预期的结果

如果我错了,请告诉我,如果我想要一个10x10的正方形视图,我必须添加以下行:

[subMenuView.view setFrame:CGRectMake(512,384,10,10)];

这不是我得到的,位置是正确的,但宽度/高度是错误的,任何想法?

4 个答案:

答案 0 :(得分:11)

如果您使用autolayout,则调用setFrame没有用,请尝试在setFrame之前调用setTranslatesAutoresizingMaskIntoConstraints

答案 1 :(得分:7)

通过设置

修复了问题
self.view.autoresizesSubviews = NO;

答案 2 :(得分:0)

代码有点不同寻常,但我猜测是因为你在将视图添加为子视图之前设置视图的框架。因此,在您看到子视图之前,子视图的位置可能会被layoutSubviews更改。

因此,请尝试将第二行代码放在最后,看看是否可以解决问题。

答案 3 :(得分:-1)

尝试使用浮点数而不是整数:

[subMenuView.view setFrame:CGRectMake(10,0,990,100)];

为:

[subMenuView.view setFrame:CGRectMake(10.0f,0.0f,990.0f,100.0f)];