Правильное местоположение касания после масштабирования и панорамирования PDF-файла, нарисованного в CATiledLayer поверх UIScrollview в iOS

Я работаю над приложением Atlas, в котором я отображаю карту, которую я могу масштабировать и перемещать, используя файл PDF. Я использую VFR Reader для этой цели, и он работает нормально. Я хочу определить местоположение касания, чтобы можно было выбрать правильное состояние. Я получаю правильную координату, когда представление не увеличено и не панорамировано с использованием кода ниже:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject]; 

    CGPoint point = [touch locationInView:theScrollView];
}

Но когда я уменьшаю и перемещаю его, местоположение касания изменяется, и я не получаю правильное выбранное состояние. Как я получу правильное выбранное состояние?

1 ответ

Решение

При отладке классов чтения vfr я обнаружил, что могу получить точное точное местоположение касания в классе ReaderContentPage. Этот класс также дает правильное местоположение касания после увеличения. Вы можете получить точку в методе processingSingleTap, как показано ниже:

- (id)processSingleTap:(UITapGestureRecognizer *)recognizer
{
    CGPoint point = [recognizer locationInView:self];
}

Точка CGPoint дает правильное местоположение касания. А затем используйте метод делегата, чтобы получить правильные координаты в требуемом классе.

Другие вопросы по тегам