我正在尝试创建定期更新的多段线(MKPolyline)覆盖,以模拟对象的移动。我可以通过删除旧的覆盖,更新多段线并再次添加覆盖来实现这一点,但这会导致闪烁。
对于点注释(MKPointAnnotation),您只需更改其坐标,视图将自动且平滑地更新,而不必删除并重新添加注释。
对于覆盖图,这也是可能的吗?
发布于 2010-07-05 18:19:33
是的,你必须用从上一个点到下一个点的点集添加一个额外的叠加。使用点创建MKPolyline后,如果不删除旧的MKPolylineView并添加新创建的点,则在绘制you时将无法更改它。
可以创建包含所有点(包括新点)的新多段线视图,并将其添加到地图中,但不要删除旧点。然后,一旦添加了新的,您就可以删除旧的较短的。它的实现可能并不美观,但它应该会消除更新时的闪烁。你可以用一个标签来区分新旧的东西。也许一个点数作为标签将会起作用。
发布于 2011-01-03 15:24:07
所有的MapKit覆盖都是不可变的,因此为了获得易变性,您需要构建自定义覆盖并仅重绘需要更新的区域。
您可以在来自Apple的Breadcrumb示例应用程序示例中找到一个示例。Breadcrumb link
发布于 2010-07-05 18:05:25
MKPolyline类继承MKMultiPoint,它由一组点组成。这是一个只读的属性,这意味着不幸的是,你不能更新它。
https://stackoverflow.com/questions/3171572
复制