2016-07-13 6 views
-3

私は以下のような画面をデザインしようとしています。私はいくつかのデバイス、例えばIPhone 5と5Sのためにこのデザインを行うことができます。これは、私のアプリケーションがIPhone 5と5Sで正常に動作することを意味します。しかし、私はそれをIPhone 6または6Sで実行しようとすると、私のデザインが壊れて混乱します。どのようにしてすべてのデバイスに共通の設計を行うことができますか。ここでオートレイアウトですべてのデバイスに適応

enter image description here

+1

autolayoutを使用します。 – Moritz

+1

ここにあなたのコードを掲載して見せることができますか? – keithbhunter

+0

私は既にAutolayoutを使用しているので、コードはありません。 – Alp

答えて

2

がするCGPointが中心からずれて与える関数ですが、指定されたインデックスこの機能を

func offset(forIndex index: Int) -> CGPoint { 
    let part = M_PI/11.0 
    let phi = part * Double(index) 
    let x = Double(UIScreen.mainScreen().bounds.width) * sin(phi) 
    let y = Double(UIScreen.mainScreen().bounds.height) * cos(phi) 
    print("----") 
    print("index \(index)") 
    print("x \(x)") 
    print("y \(y)") 

    return CGPoint(x: CGFloat(x), y: CGFloat(y)) 
} 

のために、あなたはそれに応じ

+0

私は、このカスタムに何かの自動レイアウトを使用するよりもこの方針を好んでいます。 –

0

をあなたのボタンを配置することができ、ここです前に使ったパターン:

enter image description here

灰色のバーは、すべてのボタンを異なる画面に均等に配置するために拡大縮小するUIViewです。実際のデザインでは、これらは透過的です。これらのビューのそれぞれには、同じ高さにするための制約があります。これは、画面の垂直方向のサイズにかかわらず、ボタンの間隔を均等に保ちます。

他の制約は、中央のボタンが垂直方向にセンタリングされるように制約されており、各ボタンが含むビューの後続スペースが増加していることです。各ボタンは、でも、は上下のビューに0ポイントの間隔を持つように制限されています。

これを小さな画面で実行すると、スペーサーが縮小され、大きな画面で拡大します。大きな画面では、固有のサイズを使用するように設定されている場合は、大きなボタンも取得する必要があります。

これは楕円の形状を保持しませんが、ボタンのx座標を画面の幅に比例させることができます。あなたの目標が全体的な見た目にどのようなものかによって異なります。

関連する問題