iPhone:如何设置UIViewController框架?

时间:2011-02-08 04:34:32

标签: iphone ios uiview uiviewcontroller

我有一个根UIViewController,我正在添加其他UIViewController作为子视图。目前每个子视图都太低(覆盖我的自定义构建标签栏)。当我尝试如下所示时,它不起作用:

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

这无助于改变帧大小。

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

3 个答案:

答案 0 :(得分:21)

@Nic我认为当你添加其他视图时,你应该定义其他视图框架大小,如下所示:

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

我不知道这是否有效,但它是这样的。

答案 1 :(得分:6)

首先,确保您的框架实际上没有改变尺寸。可能它/正在/改变大小,但你期望它剪辑它的内容;默认情况下,在UIView上未启用此行为,需要通过以下方式设置:

  [[self view] setClipsToBounds:YES];

要在设置新框架后仔细检查并确保框架是/没有改变尺寸,请尝试记录:

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

或者只是在更改后设置断点并检查调试器中的值。

答案 2 :(得分:4)

然后总是......

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

... OR

// Entire Screen
CGRect l_RectFrame = [UIScreen mainScreen].bounds;


MyView *l_aView = [[MyView alloc] initWithFrame:l_RectFrame];
...