#define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)
#define SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height)
#define NAVIGATIONBARHEIGHT 64.0
#define TABBARHEIGHT 49.0
- (void)viewDidLoad {
[super viewDidLoad];
UIViewController *viewController = [self viewControllerIndex:0];
viewController.view.frame = CGRectMake(0.0,0.0, SCREEN_WIDTH, SCREEN_HEIGHT);//**strange issue is here**
[self addChildViewController:viewController];
[self.view addSubview:viewController.view];
}
当第一次添加SubViewController时,我认为它的帧高应该是“SCREEN_HEIGHT - NAVIGATIONBARHEIGHT - TABBARHEIGHT”,但它不是,它看起来像:
但是我将SubViewController的框架高度更改为“SCREEN_HEIGHT”就可以了,它看起来像是:
我很困惑,为什么“SCREEN_HEIGHT”还可以?
答案 0 :(得分:1)
您正在将视图作为子视图添加到导航控制器的视图中,并且您的导航控制器似乎已嵌入到选项卡栏控制器中。从技术上讲,您的子视图将被剪掉,并且不能与导航控制器的“导航栏和标签栏控制器”标签栏重叠。这就是这些控制器的设计方式。您期望的是基本上可以使用自定义导航栏和标签栏。