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

时间:2015-02-18 00:08:18

标签: ios objective-c swift

我真的很困惑目前市场上的iOS标尺应用与不同尺寸的设备兼容。底部显示了一个示例。

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

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

我首先想到的是每个设备的PPI和屏幕尺寸都硬编码到应用程序中。这似乎是一项艰苦的工作和一百万次失误的秘诀。这真的是他们必须这样做的吗?需要在每个不同的设备上进行测试,以确保其正常工作。我只能访问我的iPhone 5S。他们可能会为每个不同的设备提供不同的统治者图像吗?这将占用手机上的大量空间。

我在SO上看到过关于绘制标尺的类似问题,但是(如果我错了,请纠正我)他们似乎没有解决方案来保持不同屏幕尺寸和PPI的准确性。他们似乎都说“这是不可能的”。如果不可能,它是如何完成的?

example

1 个答案:

答案 0 :(得分:6)

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

这些应用程序可能有一个硬编码列表,正如您推测的那样。有不到一百个硬件设备ID(例如,请参阅this list),并且只有少数不同的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

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

要检测iOS设备类型check the answers to this question