设置UIView的大小

时间:2009-08-25 13:20:36

标签: iphone uiview uiviewcontroller

我有一个UIViewController子类来控制我想要添加到UIScrollView的UIView。我只希望视图高100px,但当我将它添加到滚动视图时,它会变为460px高,忽略我设置的帧大小:

MyViewController *vc = [[MyViewController alloc] init];
vc.view.frame = CGRectMake(0, 0, 320, 100);
myScrollView.autoresizesSubviews = NO
[myScrollView addSubview:vc.view];
[vc release];

我已将滚动视图设置为不自动调整子视图,但似乎仍然会发生这种情况!我该怎么办?

我还尝试在loadView中设置框架大小:在UIViewController中(我将添加所有控件,并且需要访问视图的大小),但这也不起作用!

- (void)loadView {
    [super loadView];
    self.view.backgroundColor = [UIColor redColor];
    self.view.frame = CGRectMake(0, 0, 320, 100); // still doesnt work
}

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

你正在错误地使用loadView,我甚至很惊讶你看到了一个视图(你不应该在加载视图中将vc视图分配给任何东西),在loadView中你必须将你的视图分配给一个新的UIView istance,无论如何,你应该做同样但在viewDidLoad而不是加载视图,这可能适合你

答案 1 :(得分:0)

这是我如何做的片段。请注意,原点是关于您要添加的视图(在我的情况下是'self')。

appRect.origin=CGPointMake(0.0, 0.0);// origin
appRect.size = CGSizeMake(320.0f, 100.0f); //size
CGRect frame = CGRectInset(appRect, 0.0f, 0.0f);
gv=[[GraphicsView alloc] initWithFrame:appRect object:[model me]];
[gv setFrame:frame];

[self.view addSubview:gv];
[gv release];