如果一个标注显示当我旋转手机从垂直规则垂直紧凑,呼号是部分在导航栏下旋转后。
我怎样才能让标注最终完全封闭在地图中呢?
这是垂直紧凑型的手机。由于专有的原因,我切断了一些屏幕。
编辑2
一位当地社区成员发布了以下代码,以防止我在下面抱怨的willTransitionTo
中的缩放。
if let annotation = self.mapView.selectedAnnotations.first {
var region = self.mapView.region
region.center = annotation.coordinate
self.mapView.setRegion(region, animated: true)
}
它的工作原理就像一个冠军,以防止缩放,只会导致中心。不幸的是,标注仍然部分关闭屏幕。如果我在选择一个引脚时更改了setCenter
,不幸的是,它会以不同的方式导致非屏幕上的标注。(关于取消选举/选择,我已经找到了一个棘手的解决办法,下面引用了这些方法。)
编辑1
setCenter
也会导致缩放,而我找不到导致这种情况的原因。这可不妙。willTransitionTo
期间,我试着以注释为中心。这并没有改变标注的位置,只是放大了地图。(见上文所述)willTransitionTo
中重新选择注释。我在呼号消失和再次出现之间有很长时间的停顿。此外,还有缩放(见上文)。然而,,标注在映射的框架内。我不同意这个选项,因为“闪光灯”和缩放。(使我晕船)旧的建议答案
虽然我仍然认为这一点本身是正确的
我试过的
regionDidChange
,则设备被旋转。willTransitionTo
)的框架。该框架已包含在地图框架中。UIView
包含在MKPinAnnotationView
、_UIPopoverView
中,而UIView
包含在_MKCalloutBackgroundMaskView
中的UIView
中)viewForAnnotation
中设置特定的框架其他可能相关的说明
canShowCallout
上的属性,因为我想在它被选中后在引脚上居中。但是问题是在旋转时,这个代码在旋转时不会再次被调用。所有的帮助都是感激的。特别是显示在阅读的方向等。
发布于 2017-02-07 22:15:10
一位同事向我指出了这个answer to MKAnnotation image offset with custom pin image。
我现在正在设置
annotationView.layer.anchorPoint = CGPoint(x: 0, y: 0)
在viewFor annotation
中,它正在工作。
老实说,我不明白这是为什么要解决这个问题,所以注释/编辑/答案解释为什么会非常感谢。
https://stackoverflow.com/questions/42074974
复制相似问题