看板 MacDev 關於我們 聯絡資訊
一開始以為大頭針不會自己回收 後來發現reuseAnnotaionView會自己管理 真的是太方便了 不過如果我想知道當前螢幕中有哪些大頭針 那我應該往哪個方向著手呢? 有辦法知道目前有使用的annotationView嗎? 我研究了mapView的delegate感覺找不到我能用的 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.177.172.242 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1455291358.A.693.html
yuanruo: mapview有個annotationView方法 取得所有的大頭針 02/13 08:50
yuanruo: 然後遍歷這個數組 用(MKAnnotation)annotation接收 02/13 08:52
yuanruo: 用[mapview viewForAnnotation:ann] 判斷有值是就在螢幕 02/13 08:53
powerwolf543: 可是如果是已經use了,如果我往旁邊移動一點,他只 02/13 15:32
powerwolf543: 會把沒顯示的顯示出來。如果我依據region變動來取得 02/13 15:32
powerwolf543: 的話,用這個protocal好像沒辦法精確拿到。 02/13 15:32
我找到方法了,提供給有需要的人做參考。 使用mapView.visibleMapRect可以得到可見的Rect 然後把可見的Rect使用[mapView annotationsInMapRect:visibleMapRect] 就能得到一個NSSet 裡面放著當前可見的Annotation 如果有開UserLocation就會多一個 ※ 編輯: powerwolf543 (180.177.172.242), 02/13/2016 22:37:42