ios – 为MKOverlayView更改MKOverlay的坐标

ios – 为MKOverlayView更改MKOverlay的坐标,第1张

概述我在地图上有一个叠加层,我想改变它的坐标.为了无缝地执行此 *** 作,我将在对视图进行更改后调用 setNeedsDisplayInMapRect:方法. 我只是通过更改fillColor来测试它,它工作正常: overlayView.fillColor = [[UIColor greenColor] colorWithAlphaComponent:0.3];[overlayView setNeeds 我在地图上有一个叠加层,我想改变它的坐标.为了无缝地执行此 *** 作,我将在对视图进行更改后调用 setNeedsDisplayInMapRect:方法.

我只是通过更改fillcolor来测试它,它工作正常:

overlayVIEw.fillcolor = [[UIcolor greencolor] colorWithAlphaComponent:0.3];[overlayVIEw setNeedsdisplayInMapRect:mapVIEw.visibleMapRect];

然而,我似乎碰到了一堵砖墙,试图改变我的叠加视图的中心坐标(这是MKCircleView与MKCircle).有一种方法
MKCircle所遵循的MKAnnotation,称为setCoordinate: – 这似乎是我所需要的.不幸的是,MKCircleVIEw中的circle属性是Readonly.此外,MKOverlayView中的覆盖属性也是只读的.

实际上是否有一种方法可以更改叠加层的坐标,而无需删除叠加层视图并添加新的叠加层视图(这会在屏幕上引起非常明显的闪烁).

解决方法 这里发生了同样的问题,所以我正在创建方法集并根据需求调用它.
-(voID)removeAllAnnotationFromMapVIEw{    if ([[self.tmpMapVIEw annotations] count]) {        [self.tmpMapVIEw removeAnnotations:[self.tmpMapVIEw annotations]];    }}-(voID)removeAlloverlays{    if ([[self.tmpMapVIEw overlays] count]) {        [self.tmpMapVIEw removeOverlays:[self.tmpMapVIEw overlays]];    }}-(voID)removeOverlayWithTag:(int)tagValue{    for (MKOverlayVIEw *oVIEw in [self.tmpMapVIEw overlays]) {        if (oVIEw.tag == tagValue) {            [self.tmpMapVIEw removeOverlay:oVIEw];        }    }}
总结

以上是内存溢出为你收集整理的ios – 为MKOverlayView更改MKOverlay的坐标全部内容,希望文章能够帮你解决ios – 为MKOverlayView更改MKOverlay的坐标所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1099665.html

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

发表评论

登录后才能评论

评论列表(0条)

保存