storyboardでこのように並べて、シュミレーターで実行すると、
ずれてしまいます。一つならAdd Missing Constraintsで調節できるのですが、4つの間隔と4つ全体のポジションを中心に持ってくるにはどのようにすれば良いでしょうか。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
まず、4つのラベルをまとめるためのViewを作ります(LabelsViewとする)。
見やすいようにLabelsView.backgroundColor = UIColor.LightGrayColorに設定。(見えれば良いのでお好みの色でどうぞ)
LabelsViewにSuperViewに対してCenter XとCenter Yの制約を中心に固定するように追加。
次にLabelsViewの上にLabelを4つ配置します。
LabelのSizeが4つとも等しく固定であれば、Label1にWidthとHeightの値の制約を追加。
Label2〜4のはLabel1とそれぞれEqualになるように制約を追加。
4つのLabelとLabelsViewの位置関係に制約を追加します。
Label1 と LabelsView の間に Leading Space = 0、Top Space = 0
Label2 と LabelsView の間に Trailing Space = 0、Top Space = 0
Label3 と LabelsView の間に Leading Space = 0、Bottom Space = 0
Label4 と LabelsView の間に Trailing Space = 0、Bottom Space = 0
Label1 と Label2 の間に Leading SpaceをEqualsで任意の値
Label1 と Label3 の間に Bottom SpaceをEqualsで任意の値
これでLabel1のWidthとHeightの値と、Label1-Label2のSpace Constant、Label1-Label3のSpace Constantを変えるだけで勝手にAutoLayoutが他のラベルのSize、Position、LabelsViewのSize、Positionを調整してくれます。
最後にLabelsView.backgroundColor = UIColor.ClearColorに設定すれば完了です。
投稿2015/10/30 02:33
総合スコア150
0
例えばですが、4つのLabelのサイズは固定だとして、
Label1.trailing = Superview.centerX - 20 Label1.bottom = Superview.centerY - 20 Label2.leading = Superview.centerX + 20 Label2.bottom = Superview.centerY - 20 Label3.trailing = Superview.centerX - 20 Label3.top = Superview.centerY + 20 Label4.leading = Superview.centerX + 20 Label4.top = Superview.centerY + 20
とか。
投稿2015/10/28 10:14
総合スコア16731
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。