iPhone:如何设置UIViewController框架?

我有一个根UIViewController,我添加其他UIViewController作为子视图。 目前,每个子视图都太低了(覆盖了我的自定义生成选项卡)。 当我尝试如下这样的东西时,它不起作用:

// Test setting frame size to see if it works self.view.frame = CGRectMake(0, 0, 200, 200); 

这没有什么改变框架的大小。

所以,我的问题是,如何设置我的框架UIViewController被初始化后,它被添加为子视图?

@Nic我想当你添加其他视图时,你应该定义其他视图的框架大小是这样的:

 Someviewcontroller *c = initWithNibName c.view.frame = CGRectMake(0, 0, 200, 200); [self addSubView:c]; 

我不知道这是否会工作,但它是这样的。

首先,确保你的框架实际上没有改变大小。 可能它/正在改变大小,但你期待它剪辑它的内容; 这个行为在UIView中是默认不启用的,需要通过以下方法设置:

  [[self view] setClipsToBounds:YES]; 

要仔细检查并确保您的框架在设置新框架后不会更改大小,请尝试logging此:

  NSLog(@"New frame is: %@", NSStringFromCGRect([[self view] frame])); 

或者简单地在更改后设置断点并在debugging器中检查该值。

那么总是…

 // Screen, less StatusBar CGRect l_RectFrame = [UIScreen mainScreen].applicationFrame; 

要么…

 // Entire Screen CGRect l_RectFrame = [UIScreen mainScreen].bounds; MyView *l_aView = [[MyView alloc] initWithFrame:l_RectFrame]; ...