1

我刚刚遇到了一个问题,当我向我添加新视图时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];
}

但事实证明是这样的:

在此处输入图像描述

我不确定我是否还在这里遗漏了什么......

4

1 回答 1

2

试试这个:

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

UIView 的框架位于父视图的坐标系中。

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

在这种情况下,self.view 的框架将考虑到状态栏(因为它在屏幕上的位置)——因此状态栏大小在顶部偏移。

于 2013-03-20T13:19:37.210 回答