0
我動態上MapView的加載註釋。當用戶重新加載註釋,我想刪除舊的(即是不再由WS返回的),添加新的(這是確定),並保持現有的(如果我刪除了一切,有一個「眨眼「效果)。Mapkit註釋:刪除舊的,添加新的和保留現有
什麼是做到這一點的正確和良好的方法是什麼? 我要做的事情是這樣的: 1.瀏覽現有註釋,刪除其不在WS結果 2.瀏覽換新的,看他們是否在地圖上已經(和更新它們),如果不是,將它們添加到地圖上。
貌似很多陣列瀏覽我(我們談論100註解,至少),我想也許有一個更清潔,更快捷的方法呢?!
謝謝
假設有1,2,3,4在地圖上。用戶調用webservices,它返回3,4,5,6。我需要刪除1和2,我需要添加5和6,但我不能添加3和4,因爲他們已經在這裏。如果我做「添加註釋」,它將是一個「眨眼睛」效果,真的不是「眼睛糖果」。 –
你可以這樣做。 for(annot in oldList){posInNewList = [newlist positionOf:anno]; if(posInNewList == -1)[oldList remove:anno]; else [newlist remove:anno];}您需要找到在新列表中找到舊註釋的有效方法。如果新的列表長度預計會比oldList短得多,那麼快速的內部循環可能會好起來。這不會更新舊的註釋,但可以很容易地添加。重點是在同一個循環中將它們從舊列表或新列表中刪除。 – Craig