Xcodeの自動レイアウト制約は初めてです。 UITabBar
と6 UIButtons
のような底面図が1つあります。制約なしに、各ボタンに5つのスペースパディングを使用してこれらのボタンを配置しました。各ボタンの幅は50です。今、私は自動レイアウトを使用してすべての画面サイズをサポートすることでそれを作ろうとしています。
ストーリーボードの制約では、6つのボタンに同じ幅を設定し、各ボタン間に60のスペースを作りました。最初のボタン0を先行スペースに設定し、最後のボタン0をテール制約に設定します。
buttons with equal width and flexible spaces
すべてのデバイスサイズのビュー間。
誰も私を助けてくれますか?ヘルプを探しています。前もって感謝します。
IOS 9とXcode 7では、UIStackView
と3つまたは4つの自動レイアウト制約のみで期待どおりの結果を得ることができます。
次の手順では、ストーリーボードを使用します。
UIButton
sと5個のUIView
sを作成します。それらを水平に揃えます。ビューに色を付けます。Stack
ボタンをクリックします。すべてのボタンと色付きのビューがUIStackView
に配置されます。Utilities
パネルに移動して、Attributes Inspector
アイテムを選択します。そこで、Distribution
ボタンをクリックして、[Fill Equally]を選択します。Pin
ボタンをクリックし、Height
ボタンをチェックし、必要な値を追加して、Add 1 Constraint
ボタンをクリックします。別の方法として、スタックビューの各要素の高さを幅に合わせたい場合は、スタックビューの最初のボタンを選択し、Pin
ボタンをクリックし、Aspect Ratio
を選択してクリックしますAdd 1 Constraint
ボタン。
Document outline
(左パネル)でアスペクト比の制約が正しいことを確認できます。必要に応じて、Attribute inspector
(右パネル)の別の制約で変更できます。
pin
ボタンをクリックし、Constrain to margin
ボタンが選択されていないことを確認し、先頭、末尾、および下の制約をゼロに設定します。下部の制約がView Controllerのビューに関連していることを確認してください。次に、Update Frames
ボタンを[コンテナ内のすべてのフレーム]に変更します。 Add 3 Constraints
ボタンをクリックできるようになりました。これで、スタックビューが設定されました。
さらなる発言:
色付きのビューの幅をボタンの幅と一致させる必要がない場合は、UIButtons
のみでスタックビューを構築し、Attribute inspector
のスタックビューに間隔を追加するだけです。ただし、スタックビューの背後に背景色を追加する方法を見つける必要があります。 Appleは、 UIKit Framework Reference でそれについて述べています:
UIStackViewは、UIViewの非レンダリングサブクラスです。独自のユーザーインターフェイスは提供しません。代わりに、配置されたビューの位置とサイズを管理するだけです。その結果、いくつかのプロパティ(backgroundColorなど)はスタックビューに影響しません。
4つの異なるスタックビューでXcodeプロジェクトをビルドしました。
UIButton
s固有のコンテンツサイズの高さに依存しています。UIButton
"幅と高さが等しい"制約を持つもの、このプロジェクトは、この GitHub repo にあります。
iOS 9には、UIStackViewと呼ばれる新しいUIKitクラスがあります。あなたが望むように、ビューを水平または垂直に積み重ねるのに非常に役立ちます。このチュートリアルをご覧ください: Raywenderlich:UIStackView Tutorial
すべてのボタンを選択し、Xcodeのピンメニューで