MKMapViewのタッチジェスチャ実装について
iPhoneアプリ(Objective-C)のMKMapViewを使った実装で、Mapスクロール操作と同等のタッチジェスチャを実装したいのですが、下記のようにすると、
タッチ後の指を動かし始めた直後に少しMapがずれて意図しない方向へ瞬間移動してしまいます。
その後、ドラッグし続けた場合、Mapはタッチに追従してスクロールされます。
タッチ後の指を動かし始めた直後の動作を修正するにはどうしたらよいでしょうか。
CLLocationCoordinate2D co;
MKMapView *mv;
-(void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
mv.scrollEnabled= false;
UITouch *touch = [[event allTouches] anyObject];
CLLocationCoordinate2D currentPos = [mv convertPoint: [touch locationInView:mv]
toCoordinateFromView:mv];
CLLocationCoordinate2D previousPos = [mv convertPoint: [touch previousLocationInView:mv]
toCoordinateFromView:mv];
float diffLong = currentPos.longitude - previousPos.longitude;
float diffLat = currentPos.latitude - previousPos.latitude;
co.longitude -= diffLong;
co.latitude -= diffLat;
[mv setCenterCoordinate:co
animated:NO];
}