iPhone:如何设置UIViewController框架?

Nic*_*ard 19 iphone uiviewcontroller uiview ios

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

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

这无助于改变帧大小.

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

Rob*_*bin 21

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

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

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


Chr*_*nak 6

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

  [[self view] setClipsToBounds:YES];
Run Code Online (Sandbox Code Playgroud)

要在设置新帧后仔细检查并确保您的框架没有改变大小,请尝试记录此:

  NSLog(@"New frame is: %@", NSStringFromCGRect([[self view] frame]));
Run Code Online (Sandbox Code Playgroud)

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