Я работаю над небольшим приложением, в котором у меня есть 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: изменен обработчик события - теперь работает :-)