我遇到了一个问题,当我向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];
}
但事实证明是这样的:
我不确定我是否仍然遗漏了一些东西......
答案 0 :(得分:2)
请改为尝试:
_mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];
UIView的框架在superview的坐标系中。
另一方面,UIView的界限在视图本身的坐标系中。
在这种情况下,self.view的框架将考虑状态栏(就像它在屏幕上的位置一样) - 因此状态栏的大小偏移位于顶部。