单击引脚MKMapView会导致奇怪的帧更改

时间:2015-03-02 14:39:51

标签: ios mkmapview mkpinannotationview nsautolayout

我在MKMapView上创建的不是自定义的简单引脚注释,当我点击它时,我正在关注我的MapView:

enter image description here

仅在iOS8上发生。

我发现没有mapView的约束 - 它工作正常。 约束很简单 - 只是在旋转设备时全屏。 他们是:

[self.mapView setTranslatesAutoresizingMaskIntoConstraints:NO];
    [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.mapView
                                                          attribute:NSLayoutAttributeWidth
                                                          relatedBy:NSLayoutRelationEqual
                                                             toItem:self.view
                                                          attribute:NSLayoutAttributeWidth
                                                         multiplier:1.0
                                                           constant:0]];
    [self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.mapView
                                                          attribute:NSLayoutAttributeHeight
                                                          relatedBy:NSLayoutRelationEqual
                                                             toItem:self.view
                                                          attribute:NSLayoutAttributeHeight
                                                         multiplier:1.0
                                                           constant:0]];

MapView已添加到ViewController.view,我没有收到有关冲突约束的任何警告。

为什么会这样? 为什么点击MapView注释导致它...

是最不公平的

1 个答案:

答案 0 :(得分:0)

我没有详细说明,但由于某些原因,点击注释后mapView在父视图的左上角有一个中心,

所以设置中心锚就可以了:

[self.mapView.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor].active = true;
[self.mapView.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor].active = true;

我想这是因为我指定了高度/宽度限制,但没有关于定位,所以定义顶部/左侧约束, 也可以帮忙