2015-02-18 17 views
5

Ich bin wirklich verwirrt, wie iOS Ruler Apps derzeit auf dem Markt mit Geräten unterschiedlicher Größe kompatibel sind. Ein Beispiel ist unten dargestellt.Wie bleiben Lineal-Apps auf allen Geräten korrekt?

Nach der Recherche war ich zu dem Schluss gekommen, dass es unmöglich ist, den PPI des aktuellen Bildschirms in Echtzeit zu erhalten, was es unmöglich macht, ein Lineal programmgesteuert zu zeichnen.

Meine Frage ist, wie zeigen diese Lineal-Apps genau ein Lineal ohne in der Lage zu sein, das Gerät PPI zu bekommen?

Mein erster Gedanke wäre, dass die PPI und Bildschirmgröße für jedes Gerät in der App fest codiert ist. Das scheint eine Menge Aufwand und ein Rezept für eine Million Fehler zu sein. Müssen sie das wirklich tun? Es müsste auf jedem anderen Gerät getestet werden, um sicherzustellen, dass es richtig funktioniert. Ich habe nur Zugriff auf mein iPhone 5S. Könnten sie unterschiedliche Abbildungen von Linealen für jedes unterschiedliche Gerät haben? Dies würde viel Platz auf dem Telefon einnehmen.

Ich habe ähnliche Fragen zu SO über Zeichnungslineale gesehen, aber (korrigieren Sie mich, wenn ich falsch liege) scheinen sie keine Lösung für die Beibehaltung der Genauigkeit für verschiedene Bildschirmgrößen und PPI zu haben. Sie scheinen alle zu sagen "es ist unmöglich". Wenn es unmöglich ist, wie wird es gemacht?

example

+0

Wahrscheinlich Ihr erster Gedanke. – zaph

+0

Es gibt nicht viele verschiedene Pixelgrößen, da viele Geräte dieselbe Pixelgröße haben. Vielleicht 7 bis 10 verschiedene Größen, um mitzuhalten. –

Antwort

5

Wie Sie entdeckt haben, hat iOS keine öffentliche API für die PPI-Gerät zu bekommen.

Diese Apps haben wahrscheinlich eine fest codierte Liste, wie Sie spekulierten. Es gibt unter hundert Hardware-Geräte-IDs (this list siehe zum Beispiel), und nur eine Handvoll verschiedener EPI:

  • Nicht-Retina iPhone, iPod touch und iPad mini: 163 PPI
  • Retina iPhone (außer 6+), iPod touch und iPad mini: 326 PPI
  • iPhone 6+: 401 PPI
  • nicht-Retina iPad: 132 PPI
  • Retina iPad: 264 PPI

Ich denke, die Macher dieser Apps nicht testen in der Regel ihre Apps mit jedem Gerät. Und wenn Sie die Apps nicht überprüft haben, gibt es keinen Grund, dass Sie glauben, dass die Apps genauer sind als die oben aufgeführten PPIs.

Zum Erkennen des iOS-Gerätetyps check the answers to this question.

+0

Ugh. Danke für deine Antwort, aber das bestätigt meine Ängste. Wenn ich also etwas Ähnliches machen würde, müsste ich das Gerät aus einer Liste von <100 erkennen (sollte ich in der Lage sein, eine vorgefertigte Klasse dafür zu finden?), Das PPI für das erkannte Gerät holen. Ich würde dann das PPI Quadratwurzel, um herauszufinden, wie viele Pixel in einem Zoll sind, und dann könnte ich das Lineal entsprechend dieser Berechnung zeichnen. Hört sich das gut an? Wenn also ein neues Gerät veröffentlicht wird, muss ich es überprüfen, um festzustellen, ob sich das PPI geändert hat, und wenn dies der Fall ist, muss ich die fest codierte Liste aktualisieren? –

+0

Sie müssen keine Quadratwurzel nehmen. Die PPIs, die ich aufgelistet habe, sind entlang der Bildschirmkante gemessen, nicht die Diagonale. Ich habe meine Antwort aktualisiert, damit Sie den Gerätetyp leichter finden können. –

+0

Das ist sehr hilfreich. Ich werde versuchen, jetzt damit weiterzumachen! –

Verwandte Themen