2016-03-11 13 views
5

私はビュー内の各UIオブジェクトのWebサービスから別々に(x、y、幅、高さ)の値をCGRectに取得する動的なアプリケーションに取り組んでいます。デバイスの画面サイズに基づいてフレームを変換するには?

サーバーでは、次のサイズ(1080 x 1920)に基づいてフレームを設定します。つまり、CGRectの値が(200、20、100、100)の場合、デバイスサイズとサーバー指定サイズに基づいてデバイスに追加します。

iPhone 5の場合とそう
  1. - 新しいフレームが200、20と同じになり、100、100

  2. だからiPhone 6(375 X 667)の場合と - 新しいフレームがされます?

  3. iPhone 6+(414 x 736)の場合、新しいフレームになりますか?

主なものは、フレームは、特定のUIオブジェクトのアプリに受信されるものは何でも、ということです、それはマージンのために特別に正確に管理パネルのように見えなければなりません。注

、私はストーリーボードに自動レイアウトでUIを設定してい

ご提案がありますか?

これは一例です:

例1:

| _________________ | 
| |     | | 
| |     | | 
| |     | | 
| |     | | 
| |_________________| | 
|      | 

例2:

|   _________ | 
|   |   | | 
|   |   | | 
|   |   | | 
|   |   | | 
|   |_________| | 
|      | 

上記の例では、私は次のようになります全くフレームで、それを説明しようとしていますサーバから来ている場合、これはサーバ上で上記のように見えますが、同様のことがデバイス上にありますが、デバイスCGRectに基づいている必要があります。

+0

固定幅と高さが100x100ですか? – Vasanth

+0

サーバー管理者によって決定されます。私たちは管理者が任意のオブジェクトを調整したりサイズ変更したりできるスクリーン(iPhone 5スクリーンのプレビュー)を提供する予定です。 – Hemang

+0

それは明らかだサイズの画面オブジェクトワークベースに関するすべてのもの: - http://stackoverflow.com/questions/25892207/how-to-specify-size-for-iphone-6-customised-edge-to-edge-image –

答えて

1

から取得します。

- (CGFloat) convertServerXorWidthValueToDeviceValueXorWidth:(CGFloat)sValue { 
    CGFloat currentWidth = [UIScreen mainScreen].bounds.size.width; 
    CGFloat value = ceilf((currentWidth * sValue)/1080); 
    return value; 
} 

- (CGFloat) convertServerYorHeightValueToDeviceValueYorHeight:(CGFloat)sValue { 
    CGFloat currentHeight = [UIScreen mainScreen].bounds.size.height; 
    CGFloat value = ceilf((currentHeight * sValue)/1920); 
    return value; 
} 

希望すると、これが役に立ちます。

0

iPhone 6のフレームは(234,23,117,117)、iPhone 6 Plusは(258,25,129,129)と言います。

どのように計算されましたか? 新しい幅=(旧幅*新しいデバイス幅)/古いデバイス幅

(100 * 375)/ 320 = 117

同じものの他の値について

更新するあなたが持っている自動レイアウトを使用している場合新しい値を受け取った後の制約。

2

画面サイズと比率iPhone 4s、5,6,6 +のフレームチェンジベース。ここで

もしあなたが「サイズ(X 1920 1080)以下に基づいてフレーム」を持っているので、ここで画面によってフレームサイズを変更する必要があり、それはあなたが今怒鳴る側面に画像ベースセットを取り付けたことがわかりiPhone 6+フレームを持っていることを意味比。

1)。 iPhone 5フレーム(200,20,100,100)
2)。 iPhone 6フレーム(200,20,155,155)
3)。 iPhone 6+フレーム(200,20,194,194)

enter image description here
スクリーン解像度でスクリーンレートを設定します。私はあなたがサーバーデバイス特定CGRectを取得するために、これらの2つの方法を使用することができますThis Website. Screen ratio

imgur .COM/7zi1q.png

+0

答えのmitulをありがとう、どのようにコードでこれを行うには?私は私のアプリの中でこの開発を行うために非常に面倒です。ここ – Hemang

+0

ちょうどこのデモをダウンロードして、あなたの高さにし、正常に動作し –

+0

そのratio.:-https://www.sendspace.com/file/09e7yo側面上のベースとベースを作るデモunderstand.Thisにしてみてください: - https://でwww.sendspace.com/file/09e7yo –

関連する問題