Ios 正确调整MapKit地图注释接点的大小
我有一张添加了几个注释的地图 我想实现的是,当其中一个引脚被轻敲时,引脚会放大 我有以下代码片段Ios 正确调整MapKit地图注释接点的大小,ios,swift,mapkit,mkannotation,mkannotationview,Ios,Swift,Mapkit,Mkannotation,Mkannotationview,我有一张添加了几个注释的地图 我想实现的是,当其中一个引脚被轻敲时,引脚会放大 我有以下代码片段 func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView){ if(view.image != nil){ UIView.animate(withDuration: 0.1) { view.centerOffset = CGPoint(x: 10, y: -20)
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView){
if(view.image != nil){
UIView.animate(withDuration: 0.1) {
view.centerOffset = CGPoint(x: 10, y: -20)
view.frame.size = CGSize(width: (view.image?.size.width)! * 2, height: (view.image?.size.height)! * 2);
view.frame.offsetBy(dx: (view.image?.size.width)! * 2, dy: (view.image?.size.height)! * 2)
}
}
}
虽然这确实会调整图像的大小,但图像会扭曲,而且插针的位置也会移动(因此插针的实际位置不是正确的位置),我可以理解为什么会发生这种情况,但我不理解的是如何避免这种情况
是否有建议的调整贴图管脚大小的方法 这里有两个问题。虽然你说你确实理解它们发生的原因,但我会解释它们,以确保我们站在同一个角度,并从它们转向可能的解决方案
“虽然这会调整图像大小,但图像会失真”
MKPinAnnotationView
,则必须使用自定义图像切换到自定义MKAnnotationView
通过这种方式,您将拥有一个最初缩小的图像,然后在放大时以全分辨率显示。可能存在一些图像失真,但与放大图像时可见的失真相比,几乎看不见
“销的位置移动(因此销的实际位置不是正确的位置)”
中心偏移量造成的centerOffset
是从注释视图(以及图像,如果它占据整个注释视图而没有任何边距)的中心到图像上应“固定”到地图的点的偏移。该“固定”点将被放置在地图上该固定点应指向的位置的正上方,并在放大或缩小时保持在该点上方。
当您放大注释视图时,中心偏移量将发生变化-例如,如果注释视图变大两倍,则中心偏移量也将加倍,等等。谢谢John,我将进一步研究。正如你所说的,我可能需要做的是,创建一个自定义图像,然后当点击pin时,展开图像,还包括一个offsethanks作为提示,它们帮助很大