如果我将手机从垂直正常旋转到垂直紧凑时显示标注,则标注会在旋转后部分位于导航栏下方。
这是垂直小巧的手机。我出于专有原因切断了部分屏幕。
当地社区成员发布了以下代码,以防止放大我在下面投诉的willTransitionTo
。
if let annotation = self.mapView.selectedAnnotations.first {
var region = self.mapView.region
region.center = annotation.coordinate
self.mapView.setRegion(region, animated: true)
}
它像一个冠军一样防止缩放,只会导致居中。不幸的是,标注仍然部分屏幕外。如果我在选择某个引脚时更改setCenter
,很遗憾会导致标注以不同的方式出现在屏幕外。 (我已经找到了一些关于取消选择/选择的hacky解决方法的内容,如下所述。)
setCenter
也导致缩放,我找不到我造成的那个。所以,这不好。willTransitionTo
期间以注释为中心。这并没有改变标注的位置,只是缩放地图。 (见上文。)willTransitionTo
中重新选择注释。我在标注消失和再现之间长时间停顿。此外,还有缩放(见上文)。 然而,标注位于地图的框架内。由于“闪光”和缩放,我不会使用此选项。 (让我生病了。)虽然我仍然认为这是一个有效的点
regionDidChange
,然后旋转设备willTransitionTo
)。框架已包含在地图框架中UIView
中包含的MKPinAnnotationView
,_UIPopoverView
以及UIView
中包含的UIView
中包含的第一个_MKCalloutBackgroundMaskView
viewForAnnotation
canShowCallout
上的属性时做了一些奇怪的事情,因为我想在选择后将引脚置于引脚上。但问题出在旋转上,并且在旋转时不会再调用此代码。感谢所有帮助。特别是在阅读方向上显示等等。
答案 0 :(得分:0)
一位同事向我指出了answer to MKAnnotation image offset with custom pin image。
我现在正在设置
annotationView.layer.anchorPoint = CGPoint(x: 0, y: 0)
<{1>}中的,它正在运作。
老实说,我不明白为什么这会解决这个问题,所以评论/编辑/解答解释为什么会受到高度赞赏。