标尺应用程序如何在所有设备上保持准确?

对于目前市场上的iOS尺子应用程序如何兼容不同尺寸的设备,我感到非常困惑。 底部显示了一个例子。

经过研究,我得出的结论是,实时获得当前屏幕的PPI是不可能的,这使得不可能以程序化方式绘制尺子。

我的查询是这些标尺应用程序如何准确地显示标尺而无法获取设备PPI?

我首先想到的是,每个设备的PPI和屏幕大小都被硬编码到应用程序中。 这似乎是一个很大的努力和百万错误的食谱。 这真的是他们怎么做的? 这将需要在每个不同的设备上进行testing,以确保其正常工作。 我只能访问我的iPhone 5S。 他们可能对每个不同的设备有不同的统治者形象? 这会占用电话的空间。

我已经看到了关于绘制统治者的类似问题,但是(纠正我,如果我错了),他们似乎没有一个解决scheme,以保持不同的屏幕尺寸和PPI的准确性。 他们似乎都说“这是不可能的”。 如果不可能的话,怎么做?

例

正如您所发现的,iOS没有获取设备PPI的公共API。

正如你所猜测的,这些应用程序可能有一个硬编码列表。 有一百个硬件设备ID(例如见这个列表 ),只有less数不同的PPI:

  • 非视网膜iPhone,iPod touch和iPad mini:163 PPI
  • 视网膜iPhone(6+除外),iPod touch和iPad mini:326 PPI
  • iPhone 6+:401 PPI
  • 非视网膜iPad:132 PPI
  • 视网膜iPad:264 PPI

我猜这些应用程序的制造商通常不会使用每种设备来testing他们的应用程序。 除非您已经检查过应用程序,否则没有理由相信这些应用程序比上面列出的PPI更准确。

要检测iOS设备types, 请检查此问题的答案 。