回答編集履歴

1

回答の追記・補足

2019/09/25 11:13

投稿

usagi001
usagi001

スコア208

test CHANGED
@@ -1,3 +1,51 @@
1
1
  幅の制約がないからじゃないでしょうか?
2
2
 
3
3
  おそらくwidthが0になって表示されなくなっているのだと思います。
4
+
5
+
6
+
7
+ 追記:
8
+
9
+ `centerview.leadingAnchor.constraint(equalTo: self.view.trailingAnchor, constant: 30).isActive = true` と `width` の制約がないことにより `self.view` の右の外側に `centerview` が幅0で配置されている状態になっています。
10
+
11
+ 修正後のコード
12
+
13
+
14
+
15
+ ```swift
16
+
17
+ let centerview = UIView() //frameはautolayoutで設定するので不要ですもしくはUIView(frame: .zero)でも可
18
+
19
+ centerview.backgroundColor = .red
20
+
21
+ self.view.addSubview(centerview)
22
+
23
+ centerview.translatesAutoresizingMaskIntoConstraints = false
24
+
25
+ centerview.topAnchor.constraint(equalTo: topView.bottomAnchor, constant: 50).isActive = true
26
+
27
+ centerview.trailingAnchor.constraint(equalTo: self.view.trailingAnchor, constant: -30).isActive = true //trailingAnchor、-30に修正
28
+
29
+ centerview.bottomAnchor.constraint(equalTo: bottomView.topAnchor, constant: 50).isActive = true
30
+
31
+ ```
32
+
33
+
34
+
35
+ Auto Layout で思い通り行かない場合は下記のように `UIViewController` の `viewDidLayoutSubviews` de `frame` を確認するといいと思います。
36
+
37
+
38
+
39
+ ```swift
40
+
41
+ override func viewDidLayoutSubviews() {
42
+
43
+ print(view.frame)
44
+
45
+ }
46
+
47
+ ```
48
+
49
+
50
+
51
+ コードでのAuto Layoutの設定は `Anchor` だけでなく `addConstraints` などあるので色々調べてみるといいと思います。