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

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

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

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

Q&A

解決済

2回答

1607閲覧

ScrollViewとAutoLayoutについて

R3.S

総合スコア44

Swift

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

0グッド

0クリップ

投稿2020/05/26 12:30

編集2020/05/27 09:50

実現したいこと

AutoLayoutの赤線を解除したい
イメージ説明

試したこと

下記の記事を参考にScrollViewにAutoLayoutを設定致しました。
Scroll View(UIScrollView)でのAutoLayout設定

Viewを新たに追加して、ScrollViewと新たに追加したViewに
上下左右のマージン「0」の Constraints(制約)を追加しました。
その後、新たに追加したViewから元々あるViewにControl キーを押しながらドラッグして、
Equal WidthsとEqual Heightsの制約を追加しました。

イメージ説明

メッセージ内容

シミュレーター上では、どの端末でも同じように表示されましたが、添付画像のようにメッセージが表示されています。

Scrollable content size is ambiguous for "Scroll View".

追記

イメージ説明

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

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

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

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

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

guest

回答2

0

ベストアンサー

新しくできたContentLayoutGuideとFrameLayoutGuideをうまく使うのが大事です。
Xcode11でしたら下記サイトが詳しいので参考にしてみてください。

https://qiita.com/owen/items/2fab4a4482834b95e349

一通りやってみました。
ContentView の高さはエラー無くすために固定していますが
UI部品配置時に削除します。
中に配置するUI部品と制約で高さがしっかりしていれば大丈夫なはずです。

https://user-images.githubusercontent.com/8732417/83011120-5612ef80-a054-11ea-99c8-c7c9f40a245c.gif

TeratailDEMO

投稿2020/05/26 15:42

編集2020/05/27 11:08
TakuyaAso

総合スコア1361

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

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

R3.S

2020/05/27 09:49

TakuyaAso様 コメントいただきありがとうございます。 URL参考になりました! 実際に見ながら試したのですが、 「2.ContentViewの上下左右をContentLayout Guideに合わせる」の箇所ですが、追記の写真の通り「ContentLayout Guide」が見当たりません。 どこにあるのでしょうか? お忙しいところ申し訳ありません。 よろしくお願い致します。
TakuyaAso

2020/05/27 11:09

最小実装ではありますがGIFにしてみました。 回答に追記したので確認してみてください。
R3.S

2020/05/27 11:40

TakuyaAso様 GIFデータありがとうございます!分かりやすく感謝です。
R3.S

2020/05/28 06:59

TakuyaAso様 度々申し訳ありません。 GIFデータの最後に viewのheightのconstantの値を「400」に設定されていましたが、私の方で試したところ端末によっては、最後までスクロールしなかったり、途中で途切れるという事がございました。 どのようにしたら全ての端末でページの最後で止まるようにできるのでしょうか。 新しく質問を立て直した方がよろしければお申し付けください。
R3.S

2020/05/28 07:00

constantの値を逆に大きくするとページが余ってしまい、どの端末でもピッタリする位置に調整したいと思っています。
TakuyaAso

2020/05/28 07:04

heightの設定はUI部品置く前に消します。 verticalな制約をうまくすればエラーも出ないはずです。
TakuyaAso

2020/05/28 07:08

例えばUILabelのtopの制約を12pt,bottomの制約を12ptとかするとheightを与えなくてもContentViewの高さが決まりますよね? その高さが画面より大きくなればスクロールするようになります。
R3.S

2020/05/28 10:50

TakuyaAso様 早急なご返答ありがとうございます。 1時間ほど格闘した結果です(泣)↓ 考え方とても勉強になります。ただ、私の知識不足のため現状何となくの理解です(汗)すみません… 「heightの設定はUI部品置く前に消します。」まで何とか理解できました。 その後のUI部品でのtopの制約をどのように設置したらよいかわかりませんでした。「heightを与えなくてもContentViewの高さが決まります」というのも頭の中ではなんとなくイメージできているものの実際に手を動かすと止まってしまう状態です。 わかりやすい説明なのに理解できず申し訳ないです。 出直してきます!
TakuyaAso

2020/05/28 12:17

ContentViewの高さが決まらないと赤い警告消えないから 何もUI部品置かない状態ならと400pt与えた感じです。 例えばUILabelをContentViewの上に配置して スクロールビューを使わないときと同じように 追記にあるような`Add New Constraint` の 上と下に制約を与えると高さ変わってくれませんか?
R3.S

2020/05/29 02:36

おっしゃるようにcontentViewの高さを決めた事で警告の方は消えました!ありがとうございます! その後の処理ですが、思うようにいきません。もう少し考えてみたいと思います!本当にありがとうございます!!
guest

0

イメージ説明
↑赤枠の中のContentLayoutGuidに対象物からマウスの右ドラッグで線引っ張っていけばいいんじゃないの?

投稿2020/05/27 10:27

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

R3.S

2020/05/27 10:58

tyobigorou様 いつもありがとうございます! ドラッグで制約追加できました。勉強になります! もう1点だけ質問させて下さい。 参考URLの 「4.ContViewにオブジェクトを追加して高さを確定させる」とあるのですがこのページの1番上の画像のように右上にスキップボタンのオブジェクトのみ配置しているのですが、このボタンに合わせて高さを配置するということでよろしいのでしょうか? お忙しいなか申し訳ありません。 よろしくお願い致します。
退会済みユーザー

退会済みユーザー

2020/05/27 11:04

ごめん、私scrollView嫌いなの、見たくもないの。
R3.S

2020/05/27 11:37

tyobigorou様 そうなんですね笑 大丈夫です。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問