iPhone MapKit: выберите местоположение (координаты) вручную, коснувшись MKMapView - PullRequest
5 голосов
/ 10 августа 2010

Я хотел бы предложить пользователю возможность (вручную) выбрать лат.и долго.координаты, касаясь MKMapView.Как мне этого добиться?

Я видел, что делегат MKMapView предлагает метод convertPoint:toCoordinateFromView:.Я думаю, что это может быть хорошим началом, но я не знаю, как создать точку с помощью сенсорного действия.Спасибо.

Ответы [ 2 ]

10 голосов
/ 05 июня 2014

vwMap - это имя MKMapview объекта:

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(foundTap:)]; 
tapRecognizer.numberOfTapsRequired = 1;
tapRecognizer.numberOfTouchesRequired = 1; 
[vwMap addGestureRecognizer:tapRecognizer];



-(IBAction)foundTap:(UITapGestureRecognizer *)recognizer {
    CGPoint point = [recognizer locationInView:vwMap];
    CLLocationCoordinate2D tapPoint = [vwMap convertPoint:point toCoordinateFromView:vwMap];

    MKPointAnnotation *point1 = [[MKPointAnnotation alloc] init]; 
    point1.coordinate = tapPoint;

    [vwMap addAnnotation:point1];
}
6 голосов
/ 10 августа 2010

A UITouch объект (см. здесь ) имеет API:

- (CGPoint)locationInView:(UIView *)view

Затем используйте API MKMapView, который вы определили.

...