У меня есть приложение для iPad, которое использует весь экран (то есть UIStatusBarHidden
установлено в true в файле Info.plist). Рамки основного окна и основного вида установлены на (0, 0, 768, 1024). На главном экране включена функция мультитач.
Контроллер вида имеет этот код для обработки касаний:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
for (UITouch *touch in touches) {
CGPoint location = [touch locationInView:nil];
NSLog(@"touchesMoved at location %@", NSStringFromCGPoint(location));
}
}
Когда я запускаю приложение в симуляторе, оно работает почти так же, как и ожидалось. Когда я перемещаю мышь от одного края экрана к другому, сообщаемые значения Х изменяются от 0 до 767. Сообщаемые значения Y изменяются от 20 до 1023. (Это известная проблема , которую симулятор не ' t сообщает касания в верхних 20 пикселях экрана, даже если строка состояния отсутствует.)
Вот что странно: Когда я запускаю приложение на реальном iPad, значения X меняются от 0 до 767, как и ожидалось, но сообщаемые значения Y меняются от -6 до 1017, а не от 0 до 1023 как Я ожидаю.
Тот факт, что на симуляторе он работает должным образом, заставляет меня подозревать, что сенсорные экраны реальных устройств не откалиброваны идеально, и мое просто сообщает значения Y, которые отключены на шесть пикселей. Кто-нибудь может проверить, что это так? Иначе, есть ли что-нибудь еще, что могло бы объяснить, что значения Y находятся в шести пикселях от ожидаемого?
(Через несколько дней у меня должен появиться второй iPad, чтобы я мог проверить это на другом устройстве и сравнить результаты.)