Я использую этот код ниже, чтобы найти слой, который был нажат.
- (CALayer *)layerForTouch:(UITouch *)touch {
UIView *view = self.view;
CGPoint location = [touch locationInView:view];
location = [view convertPoint:location toView:nil];
CALayer *hitPresentationLayer = [view.layer.presentationLayer hitTest:location];
if (hitPresentationLayer) {
return hitPresentationLayer.modelLayer;
}
return nil;
}
Все отлично работает в режиме Normal Portrait.
Проблема в том, что если я повернутак что у меня есть это в альбомной ориентации и нажатие в верхней средней части экрана, местоположение вернет 313, 543. Значение X должно быть 0, потому что это верхняя часть экрана в ландшафтном режиме, но кажется, что этот код не переделывает Touchpoint в зависимости отв какой ориентации находится пользователь.
Есть идеи, как получить реальную точку соприкосновения в зависимости от ориентации?