ios – 当使用CGPattern(使用Quartz 2D)填充MKPolygon时,多边形叠加相互干扰

ios – 当使用CGPattern(使用Quartz 2D)填充MKPolygon时,多边形叠加相互干扰,第1张

概述背景 在iOS6中,我曾经在MKMapView上添加了几个MKPolygon(叠加层),并向mapView提供了一个特定的MKOverlayView:viewForOverlay:callback(见MKMapViewDelegate Class Reference).这个特定视图的工作是使用Quartz 2D使用自定义模式填充多边形.它做得很好. 现在,这在iOS7上似乎不再像以前那样做了. 因 背景

在iOS6中,我曾经在MKMapVIEw上添加了几个MKpolygon(叠加层),并向mapVIEw提供了一个特定的MKOverlayVIEw:vIEwForOverlay:callback(见MKMapViewDelegate Class Reference).这个特定视图的工作是使用Quartz 2D使用自定义模式填充多边形.它做得很好.

现在,这在iOS7上似乎不再像以前那样做了.

因为mapVIEw:vIEwForOverlay:在iOS SDK7以及MKOverlayVIEw及其子类中已被弃用,我已经尝试切换到mapVIEw:rendererForOverlay:并且成功地将MKOverlayRenderer子类化:遇到的问题是一样的.

因此,以下示例代码将使用MKOverlayVIEw,但您可以使用代码中的renderer / Renderer轻松替换vIEw / VIEw,并获得相同的效果.

遇到问题

我已经将问题减少到能够重现的最小代码示例,结果如下:

在iOS6(如预期):

在iOS7(不如预期):

我期望我的多边形填充,总是具有相同的图案,并且图案的尺寸在屏幕上保持不变,独立于地图的缩放级别.

唉,在iOS7上,当在地图上添加多个叠加层时,屏幕上的图案尺寸会缩小,同时缩小多边形的某些部分.只有在最大缩放级别放大时,图案才能获得正确的尺寸.

问题没有出现:

>只添加一个叠加层
>当叠加间隔很好时
>对于索引最小的叠加层(使用mapVIEw添加多个叠加层时:insertOverlay:atIndex 总结

以上是内存溢出为你收集整理的ios – 当使用CGPattern(使用Quartz 2D)填充MKPolygon时,多边形叠加相互干扰全部内容,希望文章能够帮你解决ios – 当使用CGPattern(使用Quartz 2D)填充MKPolygon时,多边形叠加相互干扰所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存