如果我更改setRegion
中的區域MKMapView
,有沒有辦法設置該動畫更改的速度或持續時間?我查看了文檔和Google,但沒有發現任何內容。MKMapView的setRegion速度
6
A
回答
5
我可以通過編輯對問題的響應設置setRegion
動畫的持續時間 - Setting the zoom level for a MKMapView - 如下:
#import <MapKit/MapKit.h>
@interface MKMapView (ZoomLevel)
- (void)setCenterCoordinate:(CLLocationCoordinate2D)centerCoordinate
zoomLevel:(NSUInteger)zoomLevel
animated:(BOOL)animated;
@end
#import "MKMapView+ZoomLevel.h"
@implementation MKMapView (ZoomLevel)
#define ANIMATION_DURATION 0.5
- (void)setCenterCoordinate:(CLLocationCoordinate2D)centerCoordinate
zoomLevel:(NSUInteger)zoomLevel animated:(BOOL)animated {
MKCoordinateSpan span = MKCoordinateSpanMake(0, 360/pow(2,zoomLevel)*self.frame.size.width/256);
[MKMapView animateWithDuration:ANIMATION_DURATION animations:^{
[self setRegion:MKCoordinateRegionMake(centerCoordinate, span) animated:YES];
}];
}
+0
好的工作。謝謝! – boraseoksoon 2017-07-12 11:36:03
11
下面是一個易於使用的斯威夫特擴展的情況下,有人絆倒在此未來
import MapKit
extension MKMapView {
func animatedZoom(zoomRegion zoomRegion:MKCoordinateRegion, duration:NSTimeInterval) {
MKMapView.animateWithDuration(duration, delay: 0, usingSpringWithDamping: 0.6, initialSpringVelocity: 10, options: UIViewAnimationOptions.CurveEaseIn, animations: {
self.setRegion(zoomRegion, animated: true)
}, completion: nil)
}
}
UPD:雨燕3.0版本
extension MKMapView {
func animatedZoom(zoomRegion:MKCoordinateRegion, duration:TimeInterval) {
MKMapView.animate(withDuration: duration, delay: 0, usingSpringWithDamping: 0.6, initialSpringVelocity: 10, options: UIViewAnimationOptions.curveEaseIn, animations: {
self.setRegion(zoomRegion, animated: true)
}, completion: nil)
}
}
+0
完美的解決方案!謝謝! – beseder 2016-07-20 08:26:08
相關問題
- 1. MKMapView setRegion最小跨度
- 2. MKMapView setRegion to Annotation
- 3. MKMapView崩潰setRegion
- 4. MKMapView setRegion not exact
- 5. MKMapView setRegion不工作
- 6. 的MKMapView setRegion不恆定
- 7. 的MKMapView - setRegion:動畫使的MKMapView上iOS7反應遲鈍
- 8. MKMapView不更新調用setRegion:動畫
- 9. MKMapView setRegion如何停止動畫
- 10. 的MKMapView setRegion動畫防止在註釋視圖
- 11. MKMapView setRegion「捕捉」到預定義的縮放級別?
- 12. 從setRegion獲取不同的輸出:在MKMapView
- 13. 的MKMapView凍結時</p> <p>這裏地圖setRegion
- 14. MKMapView setRegion:導致應用在iOS SDK中崩潰
- 15. MKMapView和setRegion:動畫:不更新地圖視覺
- 16. MKMapView內存使用增長失控與setRegion:調用
- 17. 我如何知道什麼時候MKMapView上的setregion不會觸發regionWillChange/regionDidChange
- 18. MKMapView setRegion to Small Area會導致失敗的衛星圖像加載
- 19. 快速添加單針MKMapView?
- 20. MKMapView setRegion:動畫:在模擬器上工作,但不在設備上iOS6
- 21. MKAnnotationView取消對setRegion
- 22. iOS Mapkit - SetRegion錯誤
- 23. WatchKit:setVisibleMapRect與WKInterfaceMap中的setRegion
- 24. MKMapView不會滾動180度
- 25. mysqli速度vs php速度?
- 26. Android的速度/播放速度變化
- 27. BOX2D XNA的加速度/速度
- 28. 更改音頻的速度(速度)
- 29. 來自加速度計的速度
- 30. 爲MKMapView添加Overlays以加快速度!這甚至有可能嗎?
不,不可能改變它們。 – 2011-06-15 02:03:24
你檢查了這個:[控制在iOS6 MKMapView的動畫速度](http://stackoverflow.com/questions/12785529/controlling-the-animation-speed-of-mkmapview-in-ios6) – theaob 2013-08-16 07:48:04