#iphone
#iPhone
Вопрос:
Я разрабатываю приложение, в котором мне нужно использовать map kit (в первый раз), и я тоже новичок в iphone. Мое требование заключается в том, что пользователь может редактировать местоположение и устанавливать желаемое местоположение с помощью PIN-кода. Я следую многим инструкциям, но я не мог понять, что пользователи могут менять местоположение для перемещения pin-кода на карте. Любая помощь, пожалуйста, спасибо.
Комментарии:
1. Вы имели в виду пин-коды, когда пользователь нажимает на карту?
2. да, например, последнее местоположение пользователя установлено на северной стороне (в каком-то месте) Нью-Йорка, и если пользователь нажмет на east side (в каком-то месте) Нью-Йорка, тогда он изменит местоположение на east side Нью-Йорка, используя pin-код, возможно ли это?
Ответ №1:
Вы могли бы использовать UIGestureRecognizer для обнаружения прикосновений к виду карты.
В том месте, где вы настраиваете вид карты (например, в viewDidLoad), прикрепите распознаватель жестов к виду карты:
UITapGestureRecognizer *tgr = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(handleGesture:)];
tgr.numberOfTapsRequired = 2;
tgr.numberOfTouchesRequired = 1;
[mapView addGestureRecognizer:tgr];
[tgr release];
или использовать длительное нажатие:
UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc]
initWithTarget:self action:@selector(handleGesture:)];
lpgr.minimumPressDuration = 2.0; //user must press for 2 seconds
[mapView addGestureRecognizer:lpgr];
[lpgr release];
В handleGesture: метод:
- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer
{
if (gestureRecognizer.state != UIGestureRecognizerStateEnded)
return;
CGPoint touchPoint = [gestureRecognizer locationInView:mapView];
CLLocationCoordinate2D touchMapCoordinate =
[mapView convertPoint:touchPoint toCoordinateFromView:mapView];
MKPointAnnotation *pa = [[MKPointAnnotation alloc] init];
pa.coordinate = touchMapCoordinate;
pa.title = @"Hello";
[mapView addAnnotation:pa];
[pa release];
}