Ios 旋转更改时显示注释
我有一个Ios 旋转更改时显示注释,ios,swift,mkmapview,mkannotation,orientation-changes,Ios,Swift,Mkmapview,Mkannotation,Orientation Changes,我有一个SplitViewController,其上有一个地图视图作为detailViewController 我向mapview添加了多个注释。添加它们后,我调用该方法放大/缩小地图,以便所有注释都显示在地图的可见部分 mapView.showAnnotations(mapView.annotations, animated: true) 现在我需要地图在方向改变时重新聚焦,因为当你把iPad转到纵向时,地图视图的可见区域会缩小。因此,我在方法中调用相同的showAnnotations:a
SplitViewController
,其上有一个地图视图作为detailViewController
我向mapview添加了多个注释。添加它们后,我调用该方法放大/缩小地图,以便所有注释都显示在地图的可见部分
mapView.showAnnotations(mapView.annotations, animated: true)
现在我需要地图在方向改变时重新聚焦,因为当你把iPad转到纵向时,地图视图的可见区域会缩小。因此,我在方法中调用相同的showAnnotations:animated:
方法,该方法在方向改变时激发。但它并没有像预期的那样起作用
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
mapView.showAnnotations(mapView.annotations, animated: true)
}
当方向改变时,我如何使其重新聚焦
在
viewDidLayoutSubviews
方法中调用showAnnotations
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
mapView.showAnnotations(mapView.annotations, animated: true)
}
当方向更改时,是否确定地图视图正确地更改了其边框(使用自动布局或其他方式)?如果不是,在纵向图中,地图可能会超出屏幕,这使得缩放看起来是错误的。我不会手动调整视图的大小。这一切都是由操作系统自己处理的。是的,但是操作系统按照故事板/xib所说的做:要么遵循设置的自动布局约束,要么自动调整大小,或者大小类,或者使用任何方法。旋转发生后,记录地图视图的帧,并查看其中一些帧是否超出屏幕边界。不要以为操作系统神奇地知道你想要什么。@Anna我用Reveal调试了视图层次结构。否,地图视图的大小调整正确。没有溢出。