我有一个根UIViewController,我正在添加其他UIViewController作为子视图。目前每个子视图都太低(覆盖我的自定义构建标签栏)。当我尝试如下所示时,它不起作用:
// Test setting frame size to see if it works
self.view.frame = CGRectMake(0, 0, 200, 200);
这无助于改变帧大小。
所以,我的问题是,在将UIViewController添加为子视图后,如何初始化UIViewController时如何设置框架?
答案 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];
...