回答編集履歴
1
回答の追記・補足
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` などあるので色々調べてみるといいと思います。
|