非常に単純な (願わくば) iMac に頭をぶつけている自動レイアウトの問題です。
私はこれを肖像画で持っています
そして、これは風景で起こることです。
私が望むのは、自動レイアウトを使用していない場合と同じようにラベルが広がることだけです。それらを均等に配置するには、どのような制約を追加しますか?
非常に単純な (願わくば) iMac に頭をぶつけている自動レイアウトの問題です。
私はこれを肖像画で持っています
そして、これは風景で起こることです。
私が望むのは、自動レイアウトを使用していない場合と同じようにラベルが広がることだけです。それらを均等に配置するには、どのような制約を追加しますか?
@sust86 のソリューションよりもややシンプルで柔軟なソリューションがあります。
私にとって、制約は次のようになります。
この構成には、ラベル (私の場合はボタン) の幅が変更されたときに間隔を修正する必要がないという利点があります。
これを試して:
#define moneyLabelWidth 20
@property (nonatomic, strong) UILabel* moneyOneLabel;
@property (nonatomic, strong) UILabel* moneyTwoLabel;
@property (nonatomic, strong) UILabel* moneyThreeLabel;
@property (nonatomic, strong) UILabel* moneyFourLabel;
@property (nonatomic, strong) UILabel* moneyFiveLabel;
@property (nonatomic, strong) UILabel* moneySixLabel;
...
[self.view addSubview:moneyOneLabe];
[self.view addSubview:moneyTwoLabe];
moneyOneLabel.translatesAutoresizingMaskIntoConstraints = NO;
moneyTwoLabel.translatesAutoresizingMaskIntoConstraints = NO
etc
...
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[_moneyOneLabel(moneyLabelWidth)]-[_moneyTwoLabel(moneyLabelWidth)]-[_moneyThreeLabel(moneyLabelWidth)]-[_moneyFourLabel(moneyLabelWidth)]-[_moneyFiveLabel(moneyLabelWidth)]-[_moneySixLabel(moneyLabelWidth)]-|"
options:0
metrics:@{@"moneyLabelWidth":@(moneyLabelWidth)}
views:NSDictionaryOfVariableBindings(_moneyOneLabel, _moneyTwoLabel, _moneyThreeLabel, _moneyFourLabel, _moneyFiveLabel, moneySixLabel)]];
/*add vertical constraints*/
上記のconstrainsWithVisualFormatは、基本的に、左端から右端まで、幅が20で、幅が可変の6つのマネーラベルを水平方向に描画することを示しています。私はこのコードを実行していませんが、機能すると思います(または少なくとも近くにあります)。
最も簡単な方法は、各ビュー間で2 つの制約を使用することです。1 つはGreater Than または Equalで、もう 1 つはLess Then または Equalです。最小サイズ (より大きいか等しい) は、縦向きモードの間隔である必要があります。最大サイズ (より小さいか等しい) は、ランドスケープ モードの間隔である必要があります。
これは、私がこの質問に提供したのと同じ解決策です:
iOS 6 で新しい制約を使用するのは注意が必要です。ray の Web サイトには、iOS 6 の自動レイアウトに関連する 2 部構成の優れたチュートリアルがあります。画像ホルダーを自動レイアウトに固定する方法を説明していますが、原則は自動レイアウト全体を理解するのに役立ちました。これがあなたにも役立つことを願っています。Herer はリンクです: http://www.raywenderlich.com/20881/beginning-auto-layout-part-1-of-2 Adrian