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];
}
}
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
if ([super respondsToSelector:@selector(scrollViewWillBeginDragging:)]) {
[super scrollViewWillBeginDragging:scrollView];
}
[self.myDelegate mapDidBeginPanning:self];
}
MKMapView を拡張するクラス内
@interface MyMapView : MKMapView <UIScrollViewDelegate, UIGestureRecognizerDelegate>
しかし、それは iOS 6 では機能しません。MKMapViewDelegate には十分なものがありません。