GestureRecognizer на экране Retina

Количество пикселей на каждой стороне устройства с сетчаткой в ​​два раза больше, чем на устройстве без сетчатки. При использовании UIPanGestureRecognizer я могу получить скорость панорамирования в пикселях/секунду в системе координат указанного представления, вызвав - (CGPoint)velocityInView:(UIView *)view, но нужно ли мне делить возвращаемое значение на 2, чтобы получить правильная скорость? Я прочитал документ от Apple, разработчик не заботится о проблеме x2. Но комментарий в UIPanGestureRecognizer.h меня смущает.


person Henry Law    schedule 04.10.2012    source источник
comment
Чтение одной строки документации даст ответ на этот вопрос.   -  person Eiko    schedule 04.10.2012


Ответы (1)


Нет, он возвращает его в points в секунду, то есть не в пикселях в секунду.

Apple выбрала points в качестве единицы, потому что она не зависит от pixel densitiy экрана. Это означает, что 3G и iPhone 4 имеют одинаковый результат с этим распознавателем жестов. У iPhone5 экран больше, но это ничего не меняет в отношении того, что возвращает распознаватель.

Таким образом, к вашему ответу: нет, вы не должны делить его на 2, Apple заботится о своих API.

person Antwan van Houdt    schedule 04.10.2012
comment
Спасибо вам за ваш быстрый ответ! В UIPanGestureRecognizer.h я обнаружил, что: - (CGPoint)velocityInView:(UIView *)view; // скорость панорамирования в пикселях/секунду в системе координат указанного вида. Этот комментарий от Apple меня смущает. Еще раз спасибо. - person Henry Law; 04.10.2012
comment
@HenryLaw Это странный комментарий .. но в документации речь идет о баллах в секунду, что в любом случае имеет гораздо больше смысла - person Antwan van Houdt; 04.10.2012