XMap8中的MKMapView默认为1000x1000

时间:2016-09-28 11:43:13

标签: objective-c xcode8

我想知道是否有其他人有问题MKMapView(或者它可能与许多其他视图有关?)做了一件奇怪的事情,它在我第一次加载屏幕时默认为1000x1000。当我转到另一个屏幕并转回地图屏幕时,它实际上跟进了我所有的约束。

Xcode7没有发生这种情况,我想知道是否有人知道Xcode8中存在已知的错误或什么?

MapKitView以编程方式加载,并作为具有约束的View中的子视图添加。

MKMapView *mapkitView = [[MKMapView alloc] initWithFrame:self.aConstrainedView.frame];
[self.mapkitView setDelegate:self];
[self.mapkitView setShowsUserLocation:YES];
[self.mapkitView setRotateEnabled:NO];
[self.aConstrainedView addSubview:self.mapkitView];

这可能与Autoresizing issue in Xcode 8相关吗?

1 个答案:

答案 0 :(得分:1)

您的初始化者应该使用其超级视图的bounds,而不是frame

MKMapView *mapkitView = [[MKMapView alloc] initWithFrame:self.aConstrainedView.bounds];

在此行和调试器中设置断点:

(lldb) po self.aConstrainedView.bounds 

确保宽度和高度正确。如果您要在viewDidLoad中添加地图视图,那就太早了。你应该覆盖:

- (void)viewDidLayoutSubviews {
    dispatch_once(
        // Add map view here
    );
}

并在那里添加您的代码,因为在您的子视图根据您的约束布局后调用它。