查看屏幕外
问题描述:
我有一个选项卡控制器,其中包含一个导航控制器,其中又包含一个视图控制器。视图控制器显示一个标签栏和一个导航栏。查看屏幕外
在这个视图控制器我想添加一个全屏视图(隐藏标签栏和导航栏,但离开状态栏),这是在加载过程中显示。我有子类的UIView,并成立了一个笔尖文件中的布局被装载到这样的观点:
- (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:
如何我的观点看在模拟器:
答
使用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;
如果您记录“框架”尺寸,您会得到什么值? – Mutix 2012-02-20 09:52:14
如果我登录'frame',我得到'320.000000 x 460.000000在0.000000; 0.000000'。我已经更新了我的问题,以显示Interface Builder中的视图与它在模拟器中的外观之间的区别。 – simonbs 2012-02-20 12:03:03
我想你必须设置下面一行'view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; ' – pmk 2012-02-20 12:14:35