Ich habe eine iPad-Anwendung, die den gesamten Bildschirm verwendet (das heißt, UIStatusBarHidden
ist in der Info.plist-Datei wahr). Die Rahmen des Hauptfensters und der Hauptansicht sind auf (0, 0, 768, 1024) eingestellt. In der Hauptansicht ist Multitouch aktiviert.Können iPad/iPhone Touch Points aufgrund von Kalibrierung falsch sein?
Die View-Controller haben diesen Code berührt zu handhaben:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
for (UITouch *touch in touches) {
CGPoint location = [touch locationInView:nil];
NSLog(@"touchesMoved at location %@", NSStringFromCGPoint(location));
}
}
Wenn ich die app im Simulator laufen, es ist ziemlich viel wie erwartet funktioniert. Wenn ich die Maus von einer Kante des Bildschirms zur anderen bewege, gehen die angegebenen X-Werte von 0 bis 767. Die gemeldeten Y-Werte gehen von 20 bis 1023. (Es ist ein known issue, dass der Simulator Berührungen in den oberen 20 nicht meldet . Pixel des Bildschirms, auch wenn es keine Statusleiste)
Hier ist, was seltsam ist: wenn ich die App auf einem tatsächlichen iPad laufen, da die X-Werte gehen von 0 bis 767 erwartet, aber berichten, Y-Werte gehen von -6 bis 1017, nicht 0 bis 1023, wie ich es erwarten würde.
Die Tatsache, dass es scheint, auf dem Simulator richtig zu arbeiten, führt zu dem Verdacht, dass die Touchscreens der realen Geräte nicht perfekt kalibriert sind, und meins meldet einfach Y-Werte, die sechs Pixel aus sind. Kann jemand bestätigen, dass dies der Fall ist? Gibt es sonst noch etwas, das für die Y-Werte verantwortlich sein könnte, die sechs Pixel von dem entfernt sind, was ich erwarte?
(In einigen Tagen sollte ich ein zweites iPad haben, ich kann das so testen, mit einem anderen Gerät und vergleichen Sie die Ergebnisse.)
Wie wäre es mit einem iPhone, könnten Sie den gleichen Test an einem durchführen und sehen, wie es geht? – jamone
Danke für die Überprüfung. –
jamone: Ich habe im Moment kein iPhone zur Hand. Es tut uns leid. – MrHen