Ich habe eine iPad-Anwendung, die den gesamten Bildschirm verwendet (dh UIStatusBarHidden
wird in der Info.plist-Datei als wahr festgelegt). Die Rahmen des Hauptfensters und der Hauptansicht sind auf (0, 0, 768, 1024) eingestellt. In der Hauptansicht ist Multitouch aktiviert.
Der View-Controller hat diesen Code, um Berührungen zu behandeln:
%Vor%Wenn ich die App im Simulator starte, funktioniert das ziemlich genau wie erwartet. 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 bekanntes Problem , dass der Simulator keine Berührungen in den oberen 20 Pixel des Bildschirms meldet, auch wenn es keine Statusleiste gibt.)
Hier ist, was ist seltsam: Wenn ich die App auf einem tatsächlichen iPad ausführen, gehen die X-Werte von 0 bis 767 wie erwartet, aber die angegebenen Y-Werte gehen von -6 bis 1017, nicht 0 bis 1023 wie ich es erwarten würde.
Die Tatsache, dass es am Simulator richtig zu funktionieren scheint, lässt mich vermuten, dass die Touchscreens von realen Geräten nicht perfekt kalibriert sind, und meins meldet einfach Y-Werte, die sechs Pixel entfernt sind. Kann jemand bestätigen, dass dies der Fall ist? Gibt es sonst noch etwas, das die Y-Werte erklären könnte, die sechs Pixel von dem entfernt sind, was ich erwarte?
(In ein paar Tagen sollte ich ein zweites iPad haben, damit ich das mit einem anderen Gerät testen und die Ergebnisse vergleichen kann.)
Bei einigen schnellen Tests habe ich das gleiche bemerkt. Ich habe ein grundlegendes View-basiertes Projekt gestartet, bei dem nichts geändert wurde, aber der folgende Code:
(iPadTestsAppDelegate)
%Vor%(iPadTestsViewController)
%Vor%Wenn ich die Ränder des Bildschirms berühre, meldet er negative Zahlen auf der X-Achse und trifft niemals auf die Y-Achse. Das Hinzufügen einiger Variablen, um Max und Min zu verfolgen, gibt mir diese als Ecken unseres iPads: {-5, 2}, {758, 2}, {-5, 1019}, {758, 1019}.
Tags und Links iphone ipad touchscreen