在UIViewController中添加视图时的空白间隙
问题描述:
我刚碰到一个问题,当我向我的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];
}
但事实是这样的:
我不知道如果我仍然缺少的东西在这里...
答
试试这个:
_mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];
UIView的帧位于超视图的坐标系统中。
另一方面,UIView的边界位于视图本身的坐标系统中。
在这种情况下,self.view框架将考虑状态栏(因为它是如何在屏幕上) - 因此状态栏大小偏移在顶部。
+0
谢谢,这很有道理! – 2013-03-20 15:04:57
请编辑标签以包含正确的语言。你显示的不是C. – tinman 2013-03-20 12:53:15
@tinman对不起,我认为Objective-C是C语言的一部分。 – 2013-03-22 09:35:43