Неверное расположение в touchesBegan

Поэтому я использую GLKViewController и GLKView. Я отлаживаю свое приложение на iPhone 5s, и если я просматриваю drawableHeight и drawableWidth для представления, оно отображается как 1136 и 640, что правильно для iphone 5s. Однако, когда я проверяю следующий код.

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    startTime = CFAbsoluteTimeGetCurrent();
    self.lastGestureTime = startTime;
    active = true;
    UITouch *touch = [ touches anyObject ];
    CGPoint _location = [ touch locationInView:self.view ];

и я щелкаю в правом нижнем углу экрана, я получаю местоположение как 316 и 533, что составляет примерно половину того, что я ожидаю от координат. Таким образом, местоположение в любом месте на экране становится ровно вдвое меньше, чем я ожидал. Мой пользовательский интерфейс отображается правильно, поэтому все кнопки находятся в нужном месте, но местоположение из locationInView получается неправильным (я думаю, что это ровно половина того, что должно быть). Любая помощь будет здорово.


person nishant    schedule 19.11.2014    source источник
comment
Вы слышали о scale ... и почему scale это 2 для iPhone 5s? developer.apple.com/library/ios/documentation/UIKit/Reference/   -  person TonyMkenu    schedule 20.11.2014
comment
Я немного покопался и обнаружил, что [view.layer.contentsScale] = 2.0. Итак, я изменил код следующим образом, и он, похоже, работает. Не совсем уверен, нужно ли мне установить для GLKView значение 1 для contentScale или оставить его равным 2, а затем настроить мой код, как показано ниже: float contentScaleFactor = [ self.view.layercontentsScale ]; Расположение Вектора2; location.v[0] = _location.x * contentScaleFactor; location.v[1] = _location.y * contentScaleFactor;   -  person nishant    schedule 20.11.2014
comment
stackoverflow.com/a/25872821/1702413   -  person TonyMkenu    schedule 20.11.2014