查看外屏幕

时间:2012-02-20 08:38:31

标签: iphone uiview uiviewcontroller interface-builder

我有一个标签控制器,它包含一个导航控制器,它再次包含一个视图控制器。视图控制器显示标签栏和导航栏。

在此视图控制器中,我想添加一个全屏视图(隐藏标签栏和导航栏但保留状态栏),这在加载过程中会显示。我已经将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像素,它看起来也太大了。

有人可以告诉我为什么会这样吗?

My view in Interface Builder

修改

我的视图在Interface Builder中的外观如何:

My view in Interface Builder

我的视图在模拟器中的显示方式:

My view in the simulator

1 个答案:

答案 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;