teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2020/07/05 11:47

投稿

TsukubaDepot
TsukubaDepot

スコア5086

answer CHANGED
@@ -1,10 +1,11 @@
1
1
  ScrollViewは使わずに、StackView と View だけのごく簡単なコードで試した結果ですが、
2
+ (追記: 念のため後半に ScrollView を使った検証結果も追記しました)
2
3
 
3
- > **スタックviewの0番目や1番目に追加しようとしても追加されませんでした。これは何故でしょうか? **
4
+ > スタックviewの0番目や1番目に追加しようとしても追加されませんでした。これは何故でしょうか?
4
5
 
5
6
  ScrollView は使っていないので何とも言えませんが、私が試した感じだと任意の場所に追加することができました。
6
7
 
7
- > **私はボタンからカスタムviewを生成した時に、コードで生成したカスタムviewを消さず残しておきたいです。(ボタンを押した回数分カスタムviewを増やしたい)**
8
+ > 私はボタンからカスタムviewを生成した時に、コードで生成したカスタムviewを消さず残しておきたいです。(ボタンを押した回数分カスタムviewを増やしたい)
8
9
 
9
10
  `CustumViewController` のインスタンスを使いまわしていることが原因ではないでしょうか。
10
11
 
@@ -67,4 +68,24 @@
67
68
  }
68
69
 
69
70
  }
70
- ```
71
+ ```
72
+ ---
73
+
74
+ 追記
75
+
76
+ 念のため、ScrollView を使って検証してみましたが、やはり任意の場所に view を追加することは可能です。
77
+
78
+ 質問者さんの制約のかけ方を確認しないまま検証したのですが、一応下記の通りとなっています(詳しい制約はスクリーンショットをご確認ください)。ScrollView の `Distribution` は `Full Equally` に設定したため、上記のコードにある
79
+
80
+ ```Swift
81
+ customView.heightAnchor.constraint(equalToConstant: 300).isActive = true
82
+ customView.translatesAutoresizingMaskIntoConstraints = false
83
+ ```
84
+
85
+ を使って動的に高さを設定すると、制約の矛盾が生じ実行時に警告が出ますので、実際は削除して実行しています。
86
+
87
+ ちなみに、ScrollView の制約については、下記の記事を参考にしてあります。
88
+
89
+ - [Xcode11のIBに追加されたContentLayoutGuideとFrameLayoutGuideについて](https://qiita.com/owen/items/2fab4a4482834b95e349)
90
+
91
+ ![イメージ説明](9ec27cabe4e909d425bad98b0573625d.jpeg)