2015-01-11 9 views
11

私はインターフェイスビルダを使って完全に拡大縮小するビューを作成しようとしています。これまでは、すべてが良いです。私はフォント、ボタンなどをプログラムでスケーリングしています。唯一の問題は同じ要素の間の制約(間隔)です。私は、スペースが邪魔に思えるので、スペース制約のためのアウトレットを作成しないようにしたい。私は要素を伸ばすにつれ、要素間の間隔を比例したままにしておきたい。今はすべてが画面の左側に基づいて調整されています。私の視界を引き伸ばすならば、すべてが左に並んでいます。私はそれがすべて比例して伸びることを望みます。これをどのようにして達成できますか(できればインターフェイスビルダーを使用しています)?iOS - autolayoutとの比例間隔

enter image description here

答えて

11

注 - これはそれを行うための大ざっぱな方法の一種です。

私は同様の問題を抱えていました。私のオブジェクト間にダミービューを追加して、それらの間の間隔を表すことで解決しました。ダミービューを残りのビューに比例してスケーリングするように制約することができます。これにより、オブジェクト間の間隔が全体のサイズに合わせて適切に拡大されます。ダミービューの隠れたプロパティを設定して、表示されないようにしました(メモ - 隠されている場合でも正しく配置されます)。

希望に役立ちます。

編集:

この方法では、(あなたが余分な景色を眺めながらIBを乱雑にしなければならない)不完全ですが、@shaが言うように、それを成し遂げるための唯一の方法であると思われます。 他の人が同様のアドバイスをしていることが判明しました。私は役に立つかもしれませんこれらの文献に出くわした:

AutoLayout to keep view sizes proportional

AutoLayout: layout consistency with proportional element spacing with 3.5" and 4" screens

+0

それは私が知る限り、そのようなレイアウトを行う唯一の方法です。 – sha

+2

実際、それはAppleがあなたにそれをすることを勧めている方法です。私は今、それを見つけることができませんが、WWDCのマテリアルから、このように実装することを示すビデオがあります。 –

+0

ああ、知っておいてよかった。 – thekwiat

8

ダミービュー???からかっているんでしょう。それがAppleが推奨するものなら、私はそれらをあまり尊敬していません。あなたは明確に探しているもの

は、中央水平(センターXアライメント)の制約であり、0で一定に保ちながら、あなただけの乗数でプレーする必要があります。

enter image description here

乗数が行きます0-2

1 will place the center of the subview at the center of the superview. 
0 will place the center of the subview at the left edge of the superview. 
2 will place the center of the subview at the right edge of the superview. 
0.5 will place the center of the subview at 25% through the superview. 
1.5 will place the center of the subview at 75% through the superview. 

これらすべての水平スペースの制約を取り除きます。そして常に乗数について考えてみましょう。制約の定数は常に0に設定する必要があります。

Appleはネイティブ解像度に執着しています。さまざまな画面サイズでデザインを拡大することは望ましくありません。それらをねじ込む。すべての方法でスケーリングされた解像度。

+1

正確には、この方法で固定スペースに比例を使用しないでください。 –

+1

これは非常に簡単な実装です。 – Leon