[問題] 怎麼得到reuse的annotation呢?

看板MacDev作者 (小狼)時間9年前 (2016/02/12 23:35), 9年前編輯推噓0(006)
留言6則, 2人參與, 最新討論串1/1
一開始以為大頭針不會自己回收 後來發現reuseAnnotaionView會自己管理 真的是太方便了 不過如果我想知道當前螢幕中有哪些大頭針 那我應該往哪個方向著手呢? 有辦法知道目前有使用的annotationView嗎? 我研究了mapView的delegate感覺找不到我能用的 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.177.172.242 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1455291358.A.693.html

02/13 08:50, , 1F
mapview有個annotationView方法 取得所有的大頭針
02/13 08:50, 1F

02/13 08:52, , 2F
然後遍歷這個數組 用(MKAnnotation)annotation接收
02/13 08:52, 2F

02/13 08:53, , 3F
用[mapview viewForAnnotation:ann] 判斷有值是就在螢幕
02/13 08:53, 3F

02/13 15:32, , 4F
可是如果是已經use了,如果我往旁邊移動一點,他只
02/13 15:32, 4F

02/13 15:32, , 5F
會把沒顯示的顯示出來。如果我依據region變動來取得
02/13 15:32, 5F

02/13 15:32, , 6F
的話,用這個protocal好像沒辦法精確拿到。
02/13 15:32, 6F
我找到方法了,提供給有需要的人做參考。 使用mapView.visibleMapRect可以得到可見的Rect 然後把可見的Rect使用[mapView annotationsInMapRect:visibleMapRect] 就能得到一個NSSet 裡面放著當前可見的Annotation 如果有開UserLocation就會多一個 ※ 編輯: powerwolf543 (180.177.172.242), 02/13/2016 22:37:42
文章代碼(AID): #1MlVlUQJ (MacDev)
文章代碼(AID): #1MlVlUQJ (MacDev)