2013-03-20 31 views
1

我刚碰到一个问题,当我向我的UIViewController添加新视图时,顶部有一个小小的空白。 (看来是状态栏的高度)在UIViewController中添加视图时的空白间隙

我用pushViewController表明这个观点,像这样:

MapViewController *map = [[[MapViewController alloc] init] autorelease]; 
[self.navigationController pushViewController:map animated:YES]; 

在我MapViewController我只是创造一个MKMapView使用相同的帧作为视图控制器。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    self.view.backgroundColor = [UIColor redColor]; 

    _mapView = [[MKMapView alloc] initWithFrame:self.view.frame]; 
    [self.view addSubview:_mapView]; 
} 

但事实是这样的:

enter image description here

我不知道如果我仍然缺少的东西在这里...

+0

请编辑标签以包含正确的语言。你显示的不是C. – tinman 2013-03-20 12:53:15

+0

@tinman对不起,我认为Objective-C是C语言的一部分。 – 2013-03-22 09:35:43

回答

2

试试这个:

 
_mapView = [[MKMapView alloc] initWithFrame:self.view.bounds]; 

UIView的帧位于超视图的坐标系统中。

另一方面,UIView的边界位于视图本身的坐标系统中。

在这种情况下,self.view框架将考虑状态栏(因为它是如何在屏幕上) - 因此状态栏大小偏移在顶部。

+0

谢谢,这很有道理! – 2013-03-20 15:04:57

相关问题