MKMapView 点击 pin 会导致奇怪的帧变化
Posted
技术标签:
【中文标题】MKMapView 点击 pin 会导致奇怪的帧变化【英文标题】:MKMapView click on pin causes weird frame changes 【发布时间】:2015-03-02 14:39:50 【问题描述】:我在 MKMapView
上创建了非自定义的简单引脚注释,当我点击它时,我的 MapView 得到了关注:
它只发生在 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
注释会导致它...
【问题讨论】:
你在这个问题上有什么进展吗?我也看到了这个问题,希望能够解决它 很久以前,我不记得细节但发布了解决方案作为答案 优秀!非常感谢,今天你从精神错乱中拯救了一个人:D 【参考方案1】:我没有详细说明,但由于某些原因,单击注释后的 mapView 在父视图的左/上角有一个中心,
所以设置中心锚就可以了:
[self.mapView.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor].active = true; [self.mapView.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor].active = true;
我猜这是因为我指定了高度/宽度约束,但没有指定定位,所以定义了顶部/左侧约束, 也可以帮助
【讨论】:
以上是关于MKMapView 点击 pin 会导致奇怪的帧变化的主要内容,如果未能解决你的问题,请参考以下文章
在 MKMapVIew 中像 MKPinAnnotation 一样绘制 Pin 查看 Pin
将 MKMapView 居中在 pin 下方的点 N 像素上
在当前用户位置放置 pin iphone mkmapview