【发布时间】:2017-11-08 22:15:09
【问题描述】:
所以我可以创建贴在地图上的注释,我可以创建叠加层,比如多边形或多段线,并使用默认渲染器将它们绘制在地图上。一切正常。
我什至可以创建一个带有自定义图像的注释视图,该图像是按方向绘制的。问题是,当地图旋转时我无法收到通知,但只有当它完成旋转时,我想在地图旋转时更改我的注释视图(因为我的注释涉及方向)。
所以我想,嘿,随着地图的旋转,多边形和线条会重新定向,所以我将我的注释更改为叠加。问题是,我无法让我的自定义渲染器绘制任何东西。
为了测试,我创建了MKPolylineRenderer 的子类并覆盖了draw 方法。并查看线的坐标:
self.polyline.points()[0]
我猜它看起来不错,例如,
MKMapPoint(x: 263670550.06153709, y: 169200197.90301803)
但每次我尝试将该地图点转换为 CGPoint 时,y 坐标始终为 0,x 坐标似乎太大了:
let point = self.point(for: self.polyline.points()[0])
-> (52506.4039975107, 0.0)
如果我调用我的超类的 draw 方法,我可以看到我的折线,并且第一点肯定不在 y=0 处,但我无法在我的覆盖方法中显示任何内容(再次,似乎是因为注册问题,但不确定)。我听从了这个建议:
Custom MKOverlayRenderer drawMapRect function not drawing polygons
有什么想法吗?
【问题讨论】: