回答編集履歴
1
全面改訂。
answer
CHANGED
@@ -1,61 +1,38 @@
|
|
1
|
+
##### アウトレット
|
2
|
+
|
1
3
|
```swift
|
2
|
-
//外側Viewのheight
|
3
|
-
@IBOutlet weak var viewBaseHeight: NSLayoutConstraint!
|
4
4
|
//内側View
|
5
5
|
@IBOutlet weak var viewRed: UIView!
|
6
6
|
@IBOutlet weak var viewYellow: UIView!
|
7
7
|
@IBOutlet weak var viewBlue: UIView!
|
8
|
+
//内側Viewのbottom
|
9
|
+
@IBOutlet weak var bottomRed: NSLayoutConstraint!
|
10
|
+
@IBOutlet weak var bottomBlue: NSLayoutConstraint!
|
11
|
+
@IBOutlet weak var bottomYellow: NSLayoutConstraint!
|
8
12
|
```
|
9
13
|
|
10
|
-
|
14
|
+
##### 制約
|
11
15
|
|
12
|
-
|
16
|
+
* 内側Viewのbottomを外側Viewのbottomに合わせる。(エラーになるので、一つだけ有効にして他はinstalledのチェックを外しておく)
|
17
|
+
* その他の制約は適当に。
|
13
18
|
|
14
|
-
#####
|
19
|
+
##### 選択時
|
15
20
|
|
16
|
-
*
|
21
|
+
* 選んだ内側Viewを表示し、bottom制約を有効にする。
|
17
|
-
*
|
22
|
+
* それ以外の内側Viewを非表示のし、bottom制約を無効にする。
|
18
23
|
|
19
|
-
##### 内側Viewの制約
|
20
|
-
|
21
|
-
* leading, trailing, topは外側Viewに合わせる。
|
22
|
-
* heightはそれぞれの高さ。
|
23
|
-
|
24
|
-
##### 内側Viewを選択
|
25
|
-
|
26
|
-
* 選んだ内側Viewを表示。それ以外の内側Viewは非表示。
|
27
|
-
* 選んだ内側Viewの高さを外側Viewに設定する。
|
28
|
-
|
29
24
|
```swift
|
30
25
|
@IBAction func selectedRed(_ sender: UIButton) {
|
26
|
+
//red
|
31
27
|
viewRed.isHidden = false
|
28
|
+
bottomRed.isActive = true
|
29
|
+
//yellow
|
32
30
|
viewYellow.isHidden = true
|
31
|
+
bottomYellow.isActive = false
|
32
|
+
//blue
|
33
33
|
viewBlue.isHidden = true
|
34
|
-
|
34
|
+
bottomBlue.isActive = false
|
35
35
|
}
|
36
36
|
```
|
37
37
|
|
38
|
-
# #2 内側Viewの高さ情報をコードで持つ場合
|
39
|
-
|
40
|
-
##### 外側Viewの制約(#1と同じ)
|
41
|
-
|
42
|
-
* leading, trailing, topはViewに合わせる。
|
43
|
-
|
38
|
+
とりあえずベタ書きで‥。
|
44
|
-
|
45
|
-
##### 内側Viewの制約
|
46
|
-
|
47
|
-
* 外側Viewに合わせる。(例えば、leading, trailing, top, bottomを全て外側Viewに合わせる)
|
48
|
-
|
49
|
-
##### 内側Viewを選択
|
50
|
-
|
51
|
-
* 選んだ内側Viewを表示。それ以外の内側Viewは非表示。(#1と同じ)
|
52
|
-
* 外側Viewの高さに選んだ内側Viewの高さを設定する。
|
53
|
-
|
54
|
-
```swift
|
55
|
-
@IBAction func selectedRed(_ sender: UIButton) {
|
56
|
-
viewRed.isHidden = false
|
57
|
-
viewYellow.isHidden = true
|
58
|
-
viewBlue.isHidden = true
|
59
|
-
viewBaseHeight.constant = 100 //Redの高さ
|
60
|
-
}
|
61
|
-
```
|