我有一个标签控制器,它包含一个导航控制器,它再次包含一个视图控制器。视图控制器显示标签栏和导航栏。
在此视图控制器中,我想添加一个全屏视图(隐藏标签栏和导航栏但保留状态栏),这在加载过程中会显示。我已经将UIView子类化并在nib文件中设置了一个布局,该文件被加载到该视图中:
- (id)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame])
{
// Load nib
self = [[[NSBundle mainBundle] loadNibNamed:@"FrontpageCountdownView" owner:self options:nil] objectAtIndex:0];
}
}
我在视图控制器中添加此视图,如下所示:
// Hide tab bar and navigation bar
self.tabBarController.tabBar.hidden = YES;
self.navigationController.navigationBar.hidden = YES;
// Add loading (frontpage countdown) view
CGRect frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height);
NFFrontpageCountdownView *countdownView = [[NFFrontpageCountdownView alloc] initWithFrame:frame];
[self.view addSubview:countdownView];
我的笔尖中的视图大小为460(全屏,减去状态栏)。我的问题是,当我将它添加到视图控制器时,它看起来“更大”。 我认为,由于视图的大小为460,它应该在添加到视图控制器时显示整个视图,但它不显示底部。即使它是460像素,它看起来也太大了。
有人可以告诉我为什么会这样吗?
修改
我的视图在Interface Builder中的外观如何:
我的视图在模拟器中的显示方式:
答案 0 :(得分:0)
使用self.tabBarController.tabBar.hidden = YES
隐藏标签栏时会发生这种情况。
相反,您应该隐藏它,然后扩展tabBarController
的视图。
CGRect tabBarFrame = self.tabBarController.view.frame;
tabBarFrame.size.height += self.tabBarController.tabBar.frame.size.height;
self.tabBarController.view.frame = tabBarFrame;
self.tabBarController.tabBar.hidden = YES;