2013-09-29 1 views
0

Я работаю над небольшим приложением, на котором у меня есть UIScrollView - и внутри этого изображения, в два раза ширину, отображающее карту. UIScrollView выполнен в редакторе раскадровки, изображение динамически загружается.Получение координат касания от изображения при сохранении функции панорамирования/масштабирования

Работает частично - я могу панорамировать, масштабировать и обнаруживать щелчок, но мне нужно, чтобы вернуть координаты x/y, отражающие положение касания.

Вот соответствующая часть моего кода:

UIImage *worldMapImage = [UIImage imageNamed:@"worldmapBig.png"]; 
    imageView = [[UIImageView alloc] initWithImage:worldmapImage]; 
    imageView.userInteractionEnabled = YES; 
    imageView.multipleTouchEnabled = YES; 

    [_worldmap addSubview:imageView]; 
    _worldmap.userInteractionEnabled = YES; 
    [_worldmap setContentSize:[worldMapImage size]]; 
    [_worldmap setMinimumZoomScale:.5]; 
    [_worldmap setMaximumZoomScale:1.0]; 
    [self performSelectorOnMainThread:@selector(didLoadImageInBackground:) withObject:imageView waitUntilDone:YES]; // After loading, initially zoom out 

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected:)]; 
    tapGesture.numberOfTapsRequired = 1; 
    tapGesture.numberOfTouchesRequired = 1; 
    [imageView addGestureRecognizer:tapGesture]; 
} 

-(void)tapDetected:(UIGestureRecognizer*)recognizer{ 
    UIView *myView = [recognizer view]; <-- 
CGPoint touch = [recognizer locationInView:myView]; <-- 
NSLog(@"%f", touch.x); 
} 

Я искал много веб-страниц, обращаясь с подобной проблемой - а также пытались заменить изображение с помощью кнопки, используя карту в качестве фона. Он возвращает координаты, но затем я больше не могу панорамировать/масштабировать; не смогли получить обе координаты и функции панорамирования/масштабирования в одном и том же коде.

Вы можете помочь мне здесь? Я застрял в течение достаточно нескольких дней ...

UPDATE: обработчик событий был изменен - ​​теперь он работает :-)

+0

Теперь он работает - я не понял, как использовать UIGestureRecognizer. Если вы представите в качестве ответа, я закрою поток. Спасибо дружище. – Anders

ответ

1

Возможно попробовать это.

Метод - [UIGestureRecognizer locationInView:] вычисляет центральную точку всех касаний точек в жесте.