作者powerwolf543 (小狼)
看板MacDev
標題[問題] 怎麼得到reuse的annotation呢?
時間Fri Feb 12 23:35:55 2016
一開始以為大頭針不會自己回收
後來發現reuseAnnotaionView會自己管理
真的是太方便了
不過如果我想知道當前螢幕中有哪些大頭針
那我應該往哪個方向著手呢?
有辦法知道目前有使用的annotationView嗎?
我研究了mapView的delegate感覺找不到我能用的
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.177.172.242
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MacDev/M.1455291358.A.693.html
1F:→ yuanruo: mapview有個annotationView方法 取得所有的大頭針 02/13 08:50
2F:→ yuanruo: 然後遍歷這個數組 用(MKAnnotation)annotation接收 02/13 08:52
3F:→ yuanruo: 用[mapview viewForAnnotation:ann] 判斷有值是就在螢幕 02/13 08:53
4F:→ powerwolf543: 可是如果是已經use了,如果我往旁邊移動一點,他只 02/13 15:32
5F:→ powerwolf543: 會把沒顯示的顯示出來。如果我依據region變動來取得 02/13 15:32
6F:→ 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