1

新しいビューを追加するUIViewControllerと、上部に小さな隙間ができるという問題が発生しました。(ステータスバーの高さに見える)

私はpushViewControllerこのビューを次のように表示していました。

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

私の場合、View Controller と同じフレームで を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 に答える