我需要知道regionWillChangeAnimated是否由於縮放或平移而發生。MKMapView regionWillChangeAnimated縮放還是平移?
我能夠通過跟蹤舊區域跨度並與新區域進行比較來查看regionDidChangeAnimated是否能夠確定是否出現縮放。
regionWillChangeAnimated的問題在於它在區域更改之前調用,所以我無法知道該區域跨越的範圍。
有沒有另外一種方法來解決這個問題?
謝謝。
我需要知道regionWillChangeAnimated是否由於縮放或平移而發生。MKMapView regionWillChangeAnimated縮放還是平移?
我能夠通過跟蹤舊區域跨度並與新區域進行比較來查看regionDidChangeAnimated是否能夠確定是否出現縮放。
regionWillChangeAnimated的問題在於它在區域更改之前調用,所以我無法知道該區域跨越的範圍。
有沒有另外一種方法來解決這個問題?
謝謝。
您必須將地圖的當前範圍與mapView:regionWillChangeAnimated:
中的前一個進行比較,該範圍會在縮放或滾動過程中多次調用。
可以使用代碼從breadcrumb sample project:MKZoomScale currentZoomScale = (CGFloat)(map.bounds.size.width/map.visibleMapRect.size.width);
我相信你需要獲取regionWillChangeAnimated調用中的當前區域範圍和中心數據,並在進行regionDidChangeAnimated調用後進行比較,但不要在那裏做太多的邏輯或它可能會導致用戶交互波動。
我沒有信譽配額發表評論,但認爲有必要反正警告:你不能使用地圖的只是區域跨度確定如果發生變焦。對於恆定縮放級別,地圖的水平比例根據緯度而變化。
是的問題是我需要知道縮放是否發生*而地圖正在放大,而不是*放大後*所以我不能依靠regionDidChangeAnimated。 – nebs 2010-06-21 14:58:40