我正在以编程方式创建一个 View 。该 View 相当简单,因为它只包含 MKMapView
我想填满屏幕(顶部的导航栏除外)。
这是我正在做的设置 MKMapView:
- (void)setupMapView
{
mapView = [[MKMapView alloc] initWithFrame:self.view.frame];
mapView.delegate = self;
mapView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
[self.view addSubview:mapView];
}
但是,
MKMapView
似乎没有填满整个屏幕。如果您查看此屏幕截图的顶部,则 map 顶部和导航栏底部之间存在间隙(由 UINavigationController
添加)。请有人建议为什么会发生这种情况以及我该如何解决?
最佳答案
View 的框架( self.view.frame
)可能在 y
中有一个偏移量位置。这是为了将其正确定位在其 super View 坐标空间中。当您将该帧复制到新 View 上时,这是不合适的,因为您正在移动到不同的坐标空间。
可以在 99.9% 或案例中使用的廉价替代方法是使用 View bounds
反而:
mapView = [[MKMapView alloc] initWithFrame:self.view.bounds];
因为这通常有一个
origin
零和完整的size
的看法。
关于ios - MKMapView 不填充 View (iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18547339/