如果我更改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 not exact
- 2. MKMapView崩溃setRegion
- 3. 的MKMapView setRegion不恒定
- 4. MKMapView setRegion如何停止动画
- 5. 的MKMapView setRegion动画防止在注释视图
- 6. 的MKMapView冻结时</p> <p>这里地图setRegion
- 7. MKMapView setRegion“捕捉”到预定义的缩放级别?
- 8. 从setRegion获取不同的输出:在MKMapView
- 9. MKMapView和setRegion:动画:不更新地图视觉
- 10. MKMapView内存使用增长失控与setRegion:调用
- 11. 我如何知道什么时候MKMapView上的setregion不会触发regionWillChange/regionDidChange
- 12. MKMapView setRegion to Small Area会导致失败的卫星图像加载
- 13. iOS MKMapView setRegion withAnimation:false会产生一个大于预期区域的区域
- 14. 快速添加单针MKMapView?
- 15. MKAnnotationView取消对setRegion
- 16. WatchKit:setVisibleMapRect与WKInterfaceMap中的setRegion
- 17. MKMapView不会滚动180度
- 18. mysqli速度vs php速度?
- 19. BOX2D XNA的加速度/速度
- 20. 来自加速度计的速度
- 21. AS3:影响速度的鼠标速度
- 22. 为MKMapView添加Overlays以加快速度!这甚至有可能吗?
- 23. CSS的速度
- 24. NSThreading的速度
- 25. 速度
- 26. 速度
- 27. 如何将UIViewController的纬度和经度值传递给MKMapView?
- 28. 从MKMapView中的一个点获取纬度和经度?
- 29. 在给定的经度和纬度从MKMapView生成UIImage
- 30. MKMapView:获得一个点的经度和经度
不,不可能改变它们。 – 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