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

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

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

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

Q&A

0回答

1489閲覧

UIStackViewをスクロールする時に親Viewも可変させるには

Ytan

総合スコア39

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

0グッド

0クリップ

投稿2020/12/17 15:10

編集2022/01/12 10:55

現状

縦長のスクロール画面をscrollViewとstackViewを使って作ると便利だった。改訂版
こちらの記事を参考にスクロール可能な縦長の画面を作成しました。
下記画像の流れになっています。
(以後ScrollViewの親UIViewをVIew,StackView内のUIVIewをLayoutViewと呼びます。)

またLabelやTableViewのCellのLabelなど取得する文字数に応じて可変するようにしています。
イメージ説明

疑問点

StackViewのheightがLayoutView内のLabel等により決まってとても扱いやすいと思ったのですが

【Swift】UIStackViewをスクロールさせる
上記リンクの2.ScrollViewにStackViewを配置するでの
StackViewの大きさがScrollView自体の大きさを超えている場合、StackViewの大きさに合わせてScrollView.contentSizeの大きさも広がり、ちゃんとスクロールできるようになる
と書かれていますが

ViewのheightもScrollViewのheightに合わせて同じく可変にしたいのですが
LayoutView内の可変するLabelの大きさによって、
スクロールした最下部にScrollViewとViewのheightの差が出て余白のばらつきができてしまうのですが
こちらを調節する事はStackViewの大きさにScrollViewが対応する事と同じようにできるのでしょうか?
イメージ説明
イメージ説明

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

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

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

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

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

TsukubaDepot

2020/12/18 22:36

View の大きさを固定にせず、bottom の制約をきちんと設定すれば、あとは動的に高さが変化するようになるはずですが、もしかして高さ固定にしてませんでしょうか。
Ytan

2020/12/19 12:15

ViewというのはScrollViewが入っている大元のViewですよね? そちらを高さを固定と言うのはコードなどでViewControllerにHeightを決定すると言う事ですか?
Ytan

2020/12/19 15:38

simulated sizeをfreeformにしていたので戻してみましたが 特に変化は見受けられませんでした。
TsukubaDepot

2020/12/22 20:35

StackView 内部の View の Constraint を Stack View と同じにした上で、その内部に配置する各パーツのエッジ(leading, trailing, top, bottom)を適切に設定すれば、最終的には下余白はその時のコンテンツの大きさに応じて適切に設定されるはずですが、いかがでしょうか。
Ytan

2020/12/23 02:41

内部に配置するパーツの制約は正しくつけれていると思います。 StackView,ScrollViewの大きさは内部のViewの大きさで決まるとなっていたので StackViewの内部のVIewはHeightのみ設定してエラーがなくなったので、そのHeightに合わせて ViewControllerのsimulated sizeをfreedomに変更した流れです。(fixedでもHeightは自動で調節されてましたが) しかし、それだとまだ画像のようにばらつきが出てしまいます。
Ytan

2020/12/23 02:46

また可変するLabelはsizetoFit()ではなくラベルの高さの制約のpriorityを変更しています。
TsukubaDepot

2020/12/24 00:48

遅くなってすみません。 同じ条件を再現させることができないので何とも言えないところもありますが、StackView に View を配置し、そこに可変高さの UILabel を配置するようなデザインはやったことがありますが、その時は下余白は想定通りの高さになりました。 ちなみに、UILabel の priority は一切いじらず、Lines をゼロに設定することで可変高さにするような設定です。 たとえば、(いつもの例ではありますが)ごく簡単なサンプルから作ってみて、挙動を調べてみるというのはどうでしょうか。 あるいは、簡単な例を GitHub などダウンロードできるところにおいていただければ、こちらでも再現確認することは可能だとおもいます(が、いまは以前ほど時間も取れていないのですぐ返事できる確約はありません)。
Ytan

2020/12/24 14:52

お忙しい中毎度返信ありがとうございます。 想定どうりになるのですねでは自分がどこか間違えてる可能性があるので 一度サンプルで実証してみようと思います。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問