質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

2657閲覧

Swift UIStackViewで縦に並べたViewのAlignをViewごとに設定する方法

yoppy0066

総合スコア293

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/10/24 09:17

編集2019/10/24 09:21

表題の件で質問させていただきます。

やりたいこととしては

UIStackView(axis = .vertical) - UILabel(名前) - UILabel(コメント) - UIButton(フォローする)

のように3つViewを並べて、UILabelは左寄せに、UIButtonだけを右寄せにしたいのですが、上記のような構成で実現することは可能でしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんな感じでしょうか?

Storyboard01

ラベルは全てAlignmentを左にするように設定して、
ボタンの部分は UIView を一枚噛ませて、その上にボタンを配置してAuto Layoutの制約をつけています。

階層的には以下のようになっています。

UIStackView(axis = .vertical) - UILabel(名前) - UILabel(コメント) - UIView - UIButton(フォローする)

ボタンにつけた制約はこんな感じです。

Storyboard02

もし違ったら追記やコメントで指摘してください。
画像があるともう少し詳しい回答ができると思います。

投稿2019/10/25 01:57

hayabusabusash

総合スコア767

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoppy0066

2019/10/25 06:41

ありがとうございました
yoppy0066

2019/10/25 11:58

すみません、UIButtonを直接StackViewに追加すると表示されるのですが、UIViewを挟むと何も表示されなくなってしまいます、、、こちらはどのような原因が考えられますでしょうか?
yoppy0066

2019/10/25 12:21

> 画像があるともう少し詳しい回答ができると思います。 こちらは、プログラムで実装しています
yoppy0066

2019/10/25 12:29

度々すみません、UIViewに設定している制約もご教授いただけないでしょうか
hayabusabusash

2019/10/25 12:47

なるほど、コードで作られていらっしゃったんですね。 ひとまず聞かれてることについて返信します。 > UIButtonを直接StackViewに追加すると表示されるのですが、UIViewを挟むと何も表示されなくなってしまいます UIButtonにはUIViewに対して上下の余白が0、かつ高さを決定する制約を追加しましたか? 何も表示されないということは高さを決定する制約が足りていないのかもしれないです。 > UIViewに設定している制約もご教授いただけないでしょうか UIViewには何も制約は追加していません。 ただ、StackViewの設定を記述するのをすっかり忘れていました。 申し訳ないです。StackViewのAlignmentはFillでDistributionもFillにしました。
yoppy0066

2019/10/25 13:01

ご丁寧にありがとうございます。以下の制約をつけたところ期待通りの挙動になりました。 UIButtonに高さの制約はつけていないのですが、AutoLayoutもままならず、、 ``` // UIView buttonView.widthAnchor.constraint(equalTo: stack.widthAnchor), // UIButton button.rightAnchor.constraint(equalTo: buttonView.rightAnchor), button.topAnchor.constraint(equalTo: buttonView.topAnchor), button.bottomAnchor.constraint(equalTo: buttonView.bottomAnchor), ```
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問