检测MKMapView的平移+减速

Jer*_*Day 4 uiscrollview mapkit mkmapview mkmapviewdelegate ios6

我正试图在MKMapView上捕捉平移和"滚动结束".使用手势识别器可以轻松进行平移.但是,MKMapView似乎没有在iOS 6中实现UIScrollViewDelegate.这使得解决方案中有没有办法限制MKMapView的最大缩放级别?不行.

思考?理想情况下,我只是利用UIScrollViewDelegate:

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    if ([super respondsToSelector:@selector(scrollViewDidEndDecelerating:)]) {
        [super scrollViewDidEndDecelerating:scrollView];
    }
    [self.myDelegate mapDidFinishPanning:self];
}

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:    (BOOL)decelerate {
    if ([super respondsToSelector:@selector(scrollViewDidEndDragging:)]) {
        [super scrollViewDidEndDragging:scrollView];
    }

if(!decelerate) {
    [self.myDelegate mapDidFinishPanning:self];
}
Run Code Online (Sandbox Code Playgroud)

}

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
    if ([super respondsToSelector:@selector(scrollViewWillBeginDragging:)]) {
        [super scrollViewWillBeginDragging:scrollView];
    }
    [self.myDelegate mapDidBeginPanning:self];
}
Run Code Online (Sandbox Code Playgroud)

在扩展MKMapView的类中

@interface MyMapView : MKMapView <UIScrollViewDelegate, UIGestureRecognizerDelegate>
Run Code Online (Sandbox Code Playgroud)

但这在iOS 6中不起作用.我在MKMapViewDelegate中看不到任何足够的东西.

Jer*_*Day 9

回答自己.我实现了所有MKMapViewDelegate的方法

- (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated
Run Code Online (Sandbox Code Playgroud)

被称为泛,和

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
Run Code Online (Sandbox Code Playgroud)

一旦减速停止(而不是之前),就会调用.