2016-04-14 59 views
8

iOSでPPI(Pixels Per Inch)を見つけようとしています。正確にプログラムでPPIを見つける方法

私たちはiPhone(163)やiPad(132)のための標準的な一般的なPPIとスケールを乗じてway to do itあり、表示サイズ

UIScreen.mainScreen().bounds 

のために行うようにこれを照会する任意の直接的な方法を見つけることはありませんでしたそれは正確ではありません。

式を右クリックiPhone 6プラスのPPIは489ですが、現実にはPPIはここで401であればハードコーディングが進むべき道であるように今のreference

あるそれはそうです。

しかし、私は式を使ってプログラム的にやりたいと思います。

答えて

2

私は、PPIまたは画面の物理サイズのいずれかを取得する公開APIはないと考えています。

唯一の方法は、デバイスの物理サイズやPPIのリストをハードコードすることです(UIDeviceクラスからデバイスタイプを取得することもできます)。

BTW。私は移植され、スウィフトに私の昔にObjCライブラリのいずれかを更新した How do ruler apps stay accurate on all devices?

+0

私たちはポイントで、画面の物理的なサイズ '[UIScreen mainScreen]ことができますねiPhone 6 plus&iPhone 6s plusはRetinaという新しいスクリーンを導入しているため、通常のPPI *スケールのように見分けることができないため、iPhone 6 Plus以外のすべてのデバイスで1点あたりのピクセル数を知ることができます。 HD ...だから私は、デバイスがiPhone 6であれば、4を返すかどうかをチェックするのが最善の方法だと思います01と残りのデバイスについては、私が推測する式を先に進めることができます... –

+0

iPhone 6&iPhone 6をプログラムで検出する方法(http://stackoverflow.com/a/26400686/730807) –

2

:ここではほとんどが同じもの(別の方法を)聞いている質問です。あなたはそれを使用するか、必要なコードの一部を取ることができます。ここに取得:https://github.com/marchv/UIScreenExtension

ライブラリでは、UIScreen.main.nativeScaleを使用してピクセル単位(PPI)からインチ単位のピクセルに変換します。

Cocoapodsを使用してライブラリをインストールし、それをインポートします。その後、

import UIScreenExtension 

そして、それを利用します。

if let pointsPerCentimeter = UIScreen.pointsPerCentimeter { 
    // code 
} 
+1

これは価値がありますUIScreenExtensionがPPI for iPad 2およびiPad Mini 1st generationを誤って報告していると述べています。これらは、2つのデバイスが@ 2x網膜ではないため、それぞれ132と163である必要があります。 –

+0

@step_jac私は最初にあなたが誤解しているとコメントしました。朝早く読まれる前にコーヒーを飲むのがよい:D OK今問題を見ることができます - それを直ちに解決します - それを指摘してくれてありがとう –

関連する問題