ios – 如何实现随地图旋转的MKAnnotationViews

ios – 如何实现随地图旋转的MKAnnotationViews,第1张

概述我有一个带有一些注释的应用程序,直到现在它们只是符合默认行为的符号(例如数字和字母).它们的方向与设备的方向固定,这是合适的. 然而,现在我需要一些需要在实际地图的方向上修复的注释,因此如果地图旋转,则注释符号需要随之旋转(例如,指示河流的箭头). 我不希望它们像地图一样使用地图缩放,但我确实希望它们随地图一起旋转. 我需要一个解决方案,主要用于用户用手指手动旋转地图时,以及当它由于在航向模式下跟 我有一个带有一些注释的应用程序,直到现在它们只是符合默认行为的符号(例如数字和字母).它们的方向与设备的方向固定,这是合适的.

然而,现在我需要一些需要在实际地图的方向上修复的注释,因此如果地图旋转,则注释符号需要随之旋转(例如,指示河流的箭头).

我不希望它们像地图一样使用地图缩放,但我确实希望它们随地图一起旋转.

我需要一个解决方案,主要用于用户用手指手动旋转地图时,以及当它由于在航向模式下跟踪而旋转时.

在谷歌地图上(至少在Android上)这很简单,只需一个简单的MarkerOptions.flat(true)

我希望ios不会太困难,我希望.

提前致谢!

解决方法 这是我用于类似的东西.

- (voID)rotateAnnotationVIEw:(MKAnnotationVIEw *)annotationVIEw toheading:(double)heading{    // Convert mapheading to 360 degree scale.    CGfloat mapheading = self.mapVIEw.camera.heading;    if (mapheading < 0) {        mapheading = fabs(mapheading);    } else if (mapheading > 0) {        mapheading = 360 - mapheading;    }    CGfloat offsetheading = (heading + mapheading);    while (offsetheading > 360.0) {        offsetheading -= 360.0;    }    CGfloat headingInradians = offsetheading * M_PI / 180;    annotationVIEw.layer.affinetransform = CGAffinetransformMakeRotation(headingInradians);}

然后,这在regionDIDChange等中调用.

不幸的是,当用户旋转地图时,此解决方案不会旋转,但它会在之后进行自我纠正以确保其具有正确的标题.我将一些affinetransform包装成一个动画块,使它看起来不错.

希望这可以帮助,或者可能帮助您指出正确的方向.

总结

以上是内存溢出为你收集整理的ios – 如何实现随地图旋转的MKAnnotationViews全部内容,希望文章能够帮你解决ios – 如何实现随地图旋转的MKAnnotationViews所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1060914.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-25
下一篇2022-05-25

发表评论

登录后才能评论

评论列表(0条)

    保存